Deluan Quintão
bc06a59919
Upgrade TagLib 2.0.2, GoReleaser 2.2.0 ( #3217 )
...
* Upgrade ci-goreleaser
* Fix tests
* Fix taglib lib path in macOS
2024-08-28 19:13:08 -04:00
kartikynwa
56303cde23
Add R128_{TRACK,ALBUM}_GAIN support to the scanner ( #3072 )
...
* Add R128 gain tags support to the scanner
* Add R128 test to metadata_internal_test.go
* Pass explicit tag names to getGainValue function
2024-06-08 13:45:06 -04:00
Deluan
f3bb022238
Add sampleRate to the DB
2024-05-11 17:57:45 -04:00
Deluan
472324e280
Read sampleRate from audio files
2024-05-11 17:57:45 -04:00
Deluan
fa72aaa462
Move TempFileName
to utils
2024-02-18 12:52:06 -05:00
Deluan
6eb13c9f79
Run Test job in ci-goreleaser container
2024-02-18 12:52:06 -05:00
Deluan
b67d1c0830
Show taglib and ffmpeg versions in the log
2024-02-18 12:52:06 -05:00
Deluan
effd588406
Stop using deprecated TagLib method length
2024-02-18 12:52:06 -05:00
Deluan
176329343a
Send Subsonic formatted response on marshalling errors
2024-02-17 10:39:29 -05:00
Deluan
97c7e5daaf
Use new slices
package from Go standard lib
2024-02-16 22:00:44 -05:00
Deluan
58f64355c2
Bump golang.org/x/exp version
2024-02-16 20:43:12 -05:00
Deluan
9a051967f6
Handle "Infinity" values for ReplayGain. Fix #2862
2024-02-16 18:44:58 -05:00
Deluan
fb7fd21984
Don't add empty TIPL roles
2024-01-24 19:22:25 -05:00
Deluan
a6fc84a2e1
Parse the ID3v2.4 TIPL frame
2024-01-23 20:50:43 -05:00
Deluan
1e5e8be192
Import ID3 sort_* tags
2024-01-23 18:07:11 -05:00
Kendall Garner
814161d78d
Add OS Lyrics extension ( #2656 )
...
* draft commit
* time to fight pipeline
* round 2 changes
* remove unnecessary line
* fight taglib. again
* make taglib work again???
* add id3 tags
* taglib 1.12 vs 1.13
* use int instead for windows
* store as json now
* add migration, more tests
* support repeated line, multiline
* fix ms and support .m, .mm, .mmm
* address some concerns, make cpp a bit safer
* separate responses from model
* remove [:]
* Add trace log
* Try to unblock pipeline
* Fix merge errors
* Fix SIGSEGV error (proper handling of empty frames)
* Add fallback artist/title to structured lyrics
* Rename conflicting named vars
* Fix tests
* Do we still need ffmpeg in the pipeline?
* Revert "Do we still need ffmpeg in the pipeline?"
Yes we do.
This reverts commit 87df7f6df79bccee83f48c4b7a8118a7636a5e66.
* Does this passes now, with a newer ffmpeg version?
* Revert "Does this passes now, with a newer ffmpeg version?"
No, it does not :(
This reverts commit 372eb4b0ae05d9ffe98078e9bc4e56a9b2921f32.
* My OCD made me do it :P
---------
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2023-12-27 20:20:29 -05:00
Deluan
798b03eabd
Add "inspect" command to CLI
2023-12-27 12:41:28 -05:00
Deluan
ea7ba22699
Discard duplicated tags
2023-12-26 19:35:14 -05:00
Deluan
51e07d4cb5
Add log.IsGreaterOrEqualTo, that take into consideration path-scoped log levels
2023-12-25 16:35:16 -05:00
Deluan
03119e5ccf
Add more trace log to TagLib Wrapper
2023-12-23 14:10:38 -05:00
caiocotts
2f2fbeb009
Fix ld warnings on taglib_wrapper.
2023-12-04 15:19:12 -05:00
Kendall Garner
742fd16a01
Parse more itunes keys, optimize taglib wrapper ( #2680 )
...
* parse more itunes keys
* Move special iTunes M4A logic to Go code
* Simplify ASF/WMA tags handling
* Simplify ASF/WMA tags handling even more, moving compilation logic to `metadata` normalizer
* Remove strdups from C++ code, `C.GoString` already duplicates the strings
* reduced set
* remove strdup
* Small nitpick
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2023-12-03 14:19:16 -05:00
Kendall Garner
3debd31b12
Add more replaygain tests, fix wma ( #2356 )
...
* add more replaygain tests, fix wma
* Convert individual specs to a table spec
* Fix pipeline, by commenting incompatible tests
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2023-11-14 20:25:18 -05:00
certuna
03175e1a9d
Use file creation date for Date Added/CreatedAt ( #2553 )
...
* Update mapping.go
CreatedAt = BirthTime
* Update metadata.go
Add BirthTime() function
* Update spread_fs.go
Replacing djherbis/atime package with djherbis/times, as times includes the functionality of atime
* Update go.mod
remove djherbis/atime, add djherbis/times
* Update mapping.go
time package not used anymore
* Update go.sum
removed djherbis/atime, added djherbis/times
* Update spread_fs.go
revert to previous, cannot get rid of /atime after all since it's a dependency of /fscache
* Update go.mod
djherbis/times 1.6.0 now released
* Update go.sum
new sums
* Update metadata.go
Inverted if statement, more readable
* Update go.mod
format fix
* Update go.sum
format fix
* Update go.sum
format fix
* Update go.sum
format fix
* Update metadata.go
variable name times -> fileProperties
check for errors
* Update metadata.go
reverse order of error check
* Update metadata.go
typo
* Update metadata.go
https://github.com/navidrome/navidrome/pull/2553#issuecomment-1787967615
2023-11-01 16:41:07 -04:00
BenzLeung
3e14c3c4f8
Add support for lyrics tag unsynced lyrics
( #2391 )
...
* Add support for lyrics tag `unsynced_lyrics`
* Update metadata.go
* Update metadata.go
resolve lint issue
* format the code with `goimports`
format the code with `goimports`
2023-06-20 09:32:49 -04:00
Philipp Wolfer
c8608956be
Fix listenbrainz submission and clarify MusicBrainz recording ID field ( #2279 )
...
* Fix MB recording ID parameter name for ListenBrainz submission
This follows the ListenBrainz API documentation.
Fixes #1657
* Rename MediaFile.MbzTrackID to MbzRecordingID
This better reflects the actual data. That the MusicBrainz
recording ID is stored in file metadata as musicbrainz_trackid
is a historical artifact.
* Rename database column mbz_track_id to mbz_recording_id
2023-06-16 18:00:01 -04:00
Deluan
f5d97823e8
Fix original date (TDOR) mapping for ffmpeg extractor
2023-06-06 19:13:45 -04:00
Deluan
8faaa3cf91
Use table specs in getDate tests
2023-05-19 17:03:14 -04:00
certuna
52b77e4194
Support for Original Date, Release Date & splitting/grouping of album editions ( #2162 )
...
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Create DoubleRangeField.js
* Update and rename DoubleRangeField.js to RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update index.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update en.json
* Update en.json
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongList.js
* Update playlist_track_repository.go
* Update 20230113000000_release_year.go
* Update PlayButton.js
* Update mediafile_repository.go
* Update album.go
* Update playlist_track_repository.go
* Update playlist_track_repository.go
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update mapping.go
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumSongs.js
* Update en.json
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update en.json
* Update configuration.go
* Update mapping.go
* Update configuration.go
* Update mediafile.go
* Update metadata.go
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update configuration.go
* Update mapping.go
* Update mediafile.go
* Update mapping.go
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update mediafile.go
* Update album.go
* Update fields.go
* Update mediafile_repository.go
* Update playlist_track_repository.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update PlayButton.js
* Update SongList.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update metadata.go
* Update ArtistShow.js
* Update mapping.go
* Update configuration.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update album.go
* Update mediafile.go
* Update metadata.go
* Update mediafile.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update album.go
* Update mediafile.go
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update en.json
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update and rename 20230113000000_release_year.go to 20230113000000_release_date.go
* Update album.go
* Update mediafile.go
* Update fields.go
* Update playlist_track_repository.go
* Update mediafile_repository.go
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update SongDatagrid.js
* Update RangeFieldDouble.js
* Update index.js
* Update ContextMenus.js
* Update PlayButton.js
* Create FormatDate.js
* Update SongList.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update en.json
* Update AlbumDetails.js
* Update album.go
fixed conflict I think?
* Update mediafile.go
fixed conflict
* Format with goimports
* Update SongDatagrid.js
only show Cat # in desktop view
* Update metadata_internal_test.go
* Update metadata_test.go
* Delete test.mp3
* Add files via upload
mp3 test file with Date, Original Date and Release Date
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update taglib_test.go
* Delete test.mp3
* Add files via upload
file with replaygain & dates
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update FormatDate.js
* Update PlayButton.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Fix formatting
* Update mapping.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
prettier
* Create RangeDoubleField.js
rename of RangeFieldDouble.js
* Update AlbumGridView.js
RangeFieldDouble -> RangeDoubleField
* Update mediafile.go
AllOrNothing() -> allOrNothing()
* Update metadata_internal_test.go
getYear -> getDate
* Update AlbumDetails.js
wrote suggested changes
* Update en.json
Editions -> Releases & fixed the field name
* Update configuration.go
Rename Editions -> Releases
* Update 20230113000000_release_date.go
Editions -> Releases
* Update album.go
Editions -> Releases
* Update mediafile.go
Editions -> Releases
* Update AlbumDetails.js
Editions -> Releases
* Update AlbumSongs.js
Editions -> Releases
* Update RangeDoubleField.js
Editions -> Releases
* Update SongDatagrid.js
Editions -> Releases
* Update index.js
FormatFullDate and RangeDoubleField
* Rename FormatDate.js to FormatFullDate.js
* Delete RangeFieldDouble.js
* Update mediafile.go
AllOrNothing -> allOrNothing
* Update mapping.go
Editions -> Releases
* Update AlbumDetails.js
prettier
* Update SongDatagrid.js
showReleaseRow -> showReleaseDivider
* Update AlbumSongs.js
showReleaseRow -> showReleaseDivider for clarity
* Update and rename 20230113000000_release_date.go to 20230515184510_add_release_date.go
- rename the migration file
- fixed the import to goose/v3
- additional db fields for original date & year
* Update 20230515184510_add_release_date.go
* Update fields.go
* Update album.go
* Update mediafile.go
* Update mapping.go
* Update AlbumDetails.js
* Update en.json
* Update AlbumDetails.js
* Update AlbumDetails.js
now hopefully prettier
* Update mapping.go
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2023-05-19 15:27:47 -04:00
Deluan
010ba0d15c
Use table specs in ReplayGain tests.
...
Also use test.mp3 file from Release Date PR, trying to fix a conflict.
2023-05-19 14:49:15 -04:00
Kendall Garner
a19a643c65
Manually add replaygain tags for m4a ( #2346 )
...
* manually add replaygain tags for m4a
* Add replaygain tests for m4a, mp4, ogg
* add new valye for bitrate
2023-05-17 16:00:16 -04:00
Deluan
759ff844e2
Make ffmpeg path configurable, also finds it automatically in current folder. Fixes #1932
2023-02-07 13:46:09 -05:00
Corrado Primier
0c27e7a43b
Fix Illumos build - #2067 ( #2069 )
...
Build currently fails on Illumos with error `Undefined symbol sendfile`. Fix it by linking `sendfile` explicitly.
2023-01-19 12:52:01 -05:00
Kendall Garner
1324a16fc5
ReplayGain support + audio normalization (web player) ( #1988 )
...
* ReplayGain support
- extract ReplayGain tags from files, expose via native api
- use metadata to normalize audio in web player
* make pre-push happy
* remove unnecessary prints
* remove another unnecessary print
* add tooltips, see metadata
* address comments, use settings instead
* remove console.log
* use better language for gain modes
2023-01-17 15:57:19 -05:00
Deluan
cbe3adf987
Don't show error when it is nil
2023-01-13 22:18:34 -05:00
Deluan
80ded63d35
Add test for mapTrackTitle
2022-12-30 15:13:04 -05:00
Deluan
b6eb60f019
Add new Artwork Cache Warmer
2022-12-28 15:31:56 -05:00
Deluan
73719c3abd
Fix cover detection on M4A containers
2022-12-28 15:31:56 -05:00
Deluan
6f5aaa1ec4
Move alternative tag names mapping to metadata
2022-12-28 15:31:56 -05:00
Deluan
0c22af3585
Invert dependency of metadata and extractors
2022-12-28 15:31:56 -05:00
Deluan
5943e8f953
Rename log.LevelCritical to log.LevelFatal
2022-12-21 14:53:36 -05:00
Reo
4489c34757
Fix Misleading Error Message on unreadable Media due to Permission ( #1873 )
...
* fix(taglib): Fix misleading error message on unreadable media - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* Fix test and simplify code a bit
We don't need to expose the type of error: `taglib.Parse()` always return nil
* Fix comment
Signed-off-by: reo <reo_999@proton.me>
Co-authored-by: Deluan <deluan@navidrome.org>
2022-12-04 12:48:21 -05:00
Zane van Iperen
c7ef4bd803
Capture "musicbrainz_releasetrackid" tag ( #1827 )
...
* db/migration: typo fix
* model: add MbzReleaseTrackID field
* scanner: capture the musicbrainz_releasetrackid tag
2022-10-01 12:13:47 -04:00
Deluan
ebad96b8a4
Fix warning about mixing value and pointer receivers
2022-08-21 14:42:17 -04:00
Deluan
16afd3a490
Remove //+build
tags, as the code does not compile on older versions of Go anymore
2022-07-29 08:41:28 -04:00
Deluan
31882abf6f
Upgrade Ginkgo to V2
2022-07-26 16:53:17 -04:00
Deluan
0714f08274
Recover from SIGSEGVs in taglib's code
2021-11-20 12:33:06 -05:00
Deluan
48a627885c
Simplify prototype definition for taglib_read
2021-11-13 12:18:42 -05:00
Deluan
174ad9e9da
Fix ffmpeg bitrate parsing for flac files
2021-10-12 22:02:24 -04:00
Samarjeet
0c0bd2967d
Replace expanded with a dialog ( #1258 )
...
* Replace expanded with a dialog
* Change `info` label to "Get Info"
* Rename things for consistency
Co-authored-by: Deluan <deluan@navidrome.org>
2021-09-20 20:30:43 -04:00