Commit Graph

53 Commits

Author SHA1 Message Date
gnattu 79c4469ac7 Remove redundant NaN check
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-29 06:23:16 +08:00
gnattu 5c5b326b1a Remove test var
Co-authored-by: Cody Robibero <cody@robibe.ro>
2024-07-29 06:23:16 +08:00
gnattu 56a98a3bb0 Make internal value separator a constant
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-29 06:23:16 +08:00
gnattu 1d658a5a4d Remove redundant check
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-29 06:23:13 +08:00
gnattu 939e02ccee Apply suggestions from code review
Co-authored-by: Cody Robibero <cody@robibe.ro>
2024-07-29 06:21:51 +08:00
gnattu ac9322370b Check if the metadata is supported for title fallback
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-29 06:21:51 +08:00
gnattu 172feab084 Migrate to z440.atl instead of TagLib-Sharp
The ATL lib provides a lot of advantages to the TagLib we are currently using.

Notably:

- auto-detect the format of the audio data, even if the file extension has the wrong label, and provides unified API for different file types.

- supports more audio formats than TagLib

- supports lyrics natively

- supports playlists and cuesheets

- srovides relatively simple and controllable way for non-standard fields, enable us to implement compatibility features instead of waiting for lib updates

- is actually maintained

Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-29 06:21:47 +08:00
Bond_009 ecd2dab0a2 Add TrySetProviderId extension 2024-07-17 15:48:21 +02:00
Bond_009 2e338f74ec Fix (another) ArgumentNullException while scanning music
```
[2024-07-17 14:31:18.202 +02:00] [ERR] [19] MediaBrowser.Providers.Music.AudioMetadataService: Error in "Probe Provider"
System.ArgumentNullException: Value cannot be null. (Parameter 'value')
   at System.ArgumentNullException.Throw(String paramName)
   at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
   at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
   at MediaBrowser.Model.Entities.ProviderIdsExtensions.SetProviderId(IHasProviderIds instance, String name, String value) in /home/loma/dev/jellyfin/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs:line 121
   at MediaBrowser.Model.Entities.ProviderIdsExtensions.SetProviderId(IHasProviderIds instance, MetadataProvider provider, String value) in /home/loma/dev/jellyfin/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs:line 151
   at MediaBrowser.Providers.MediaInfo.AudioFileProber.FetchDataFromTags(Audio audio, MediaInfo mediaInfo, MetadataRefreshOptions options, Boolean tryExtractEmbeddedLyrics) in /home/loma/dev/jellyfin/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs:line 330
   at MediaBrowser.Providers.MediaInfo.AudioFileProber.FetchAsync(Audio audio, MediaInfo mediaInfo, MetadataRefreshOptions options, CancellationToken cancellationToken) in /home/loma/dev/jellyfin/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs:line 139
   at MediaBrowser.Providers.MediaInfo.AudioFileProber.Probe[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken) in /home/loma/dev/jellyfin/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs:line 105
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken) in /home/loma/dev/jellyfin/MediaBrowser.Providers/Manager/MetadataService.cs:line 800
```
2024-07-17 14:36:47 +02:00
gnattu ea7e834ae1 Backport pull request #12126 from jellyfin/release-10.9.z
Try to add extracted lyrics during scanning

Original-merge: 25f02658f0

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-24 20:29:05 -04:00
gnattu 2599babe31 Backport pull request #11859 from jellyfin/release-10.9.z
Use music metadata from ffprobe when TagLib fails

Original-merge: b8a0cf6a9e

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:07 -04:00
nfmccrina 4385430f05 Backport pull request #11621 from jellyfin/release-10.9.z
Handle exception for unexpected audio file YEAR tag values

Original-merge: d5dc4435d9

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:37 -04:00
gnattu cf483203f5 Fix external LRC files being incorrectly overwritten during the initial scan (#11480) 2024-05-05 08:22:48 -06:00
Bond_009 88a38a61b5 Improve audio normalization
* Move calculation of LUFS to a scheduled task as it's pretty slow
* Correctly calculate album LUFS
* Don't try to convert replaygain tags to LUFS values
2024-04-28 15:18:53 +02:00
Bond-009 428283f787 Always scan ReplayGain tag (#11418) 2024-04-24 08:09:01 -06:00
Bond-009 3936fc9f25 Don't run ffprobe a second time for music file (#11419) 2024-04-23 07:08:49 -06:00
Cody Robibero d402005d32 fix: fallback to artist if album artist not provided 2024-04-14 14:29:55 -06:00
Dominik Krivohlavek ab731d9212 Fix track MBID in audio metadata (#11301) 2024-04-12 17:44:30 -06:00
Bond-009 b6d130ae2d Merge pull request #11155 from sel10ut/bugfix/fix-releasedate-tag
Fix parsing of audio PremiereDate property
2024-03-16 16:43:59 +01:00
sel10ut 368a1b385a fix: fallback to TagLib date parsing if ffprobe fails
Bring back hardcoded PremiereDate with correctly parsed year from TagLib, if ffprobe cannot get it
2024-03-15 01:37:11 +03:00
sel10ut e9caa65eba fix: change parsing of audio title tag 2024-03-14 13:25:04 +03:00
sel10ut 1236bb298c fix: correct parsing of audio release date property
Read full date from ffmpeg probe.
2024-03-14 12:54:53 +03:00
Cody Robibero 169e0dcb11 Save embedded lyrics when probing audio 2024-02-28 17:34:33 -07:00
Cody Robibero ac33d1593a oops 2024-02-28 17:34:06 -07:00
Cody Robibero 5a652360c3 Update AudioFileProber.cs 2024-02-28 17:18:52 -07:00
Cody Robibero ddf8f7d636 Update AudioFileProber.cs 2024-02-28 17:12:05 -07:00
Cody Robibero f3c333f4d5 Merge branch 'master' into bhowe34/fix-replace-missing-metadata-for-music 2024-02-28 17:09:23 -07:00
Brian Howe 54eb81395e Merge branch 'master' into bhowe34/fix-replace-missing-metadata-for-music 2024-02-27 21:07:30 -06:00
Cody Robibero 0bc41c015f Store lyrics in the database as media streams (#9951) 2024-02-26 05:09:40 -07:00
TelepathicWalrus 7b5c41c2a5 Add option to use replaygain tags for audio (#10566)
* Add option to use replaygain tags for audio

* Change regex to be specific

* Use ffprobe for faster metadata grabs

* Change regex to .Match
2024-01-06 13:59:56 -07:00
Brian Howe 7f1fec688c check ReplaceAllMetadata option and name field lock 2023-12-06 23:55:36 -06:00
GinoGinocchio ddcd29f17e Update MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2023-12-06 22:57:11 -06:00
GinoGinocchio de91a213a1 Update MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2023-12-06 22:57:11 -06:00
GinoGinocchio 81d642abe3 Removing unnecesary empty and null validations 2023-12-06 22:57:11 -06:00
GinoGinocchio eb41cd51ea Using TryGetProviderId and adding an empty validation 2023-12-06 22:57:11 -06:00
GinoGinocchio 01bbc7d117 Correcting according to the comments provided 2023-12-06 22:57:11 -06:00
GinoGinocchio d1cc56f78c Fix: "Feature 'replace missing metadata' overwrites existing metadata that does exist" for music 2023-12-06 22:57:11 -06:00
Stepan Goremykin 8ea812b65d Reduce string literal length by using verbatim string 2023-10-08 00:26:12 +02:00
Stepan Goremykin d6b557d9ee Move declaration closer to usage 2023-10-07 23:56:07 +02:00
Claus Vium 956e3dab43 fix: accessing Standard* of a Process requires manually disposing them afterwards (#10125) 2023-08-20 20:06:57 +02:00
Jan Müller 66ff724acf Fix the probing of m4a metadata
The composer is not set in some of my m4a files. For some reason
TagLibSharp returns the composer as an empty string in this case. This
causes an exception in PeopleHelper.AddPerson, and thus probing fails.

IMHO we can simply ignore empty values.

Fixes: #10061
2023-07-31 22:19:06 +02:00
Bond_009 b5f0760db8 Use RegexGenerator where possible 2023-06-28 17:07:57 +02:00
TelepathicWalrus 603fce59df Audio normalization (#9222)
Co-authored-by: Joe Rogers <1337joe@users.noreply.github.com>
Co-authored-by: Bond-009 <bond.009@outlook.com>
2023-05-15 13:12:24 +02:00
Cody Robibero 89be3aa37f Convert Person.Type to use PersonKind enum (#9487) 2023-03-25 11:52:02 -06:00
Joe Rogers 2d2b0a528c Add missing checks for item locked state in metadata updates 2023-02-12 21:59:58 -05:00
Bond_009 52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Shadowghost 9b2e9640be Apply review suggestions 2022-10-07 14:41:00 +02:00
Shadowghost 6c6f89acc3 Apply review suggestions 2022-10-07 14:14:21 +02:00
Shadowghost 4649e0e425 Add xiph tag parsing 2022-10-03 13:20:54 +02:00
Shadowghost fa9820b1fd Add apple tag parsing 2022-10-03 13:05:57 +02:00