Commit graph

213 commits

Author SHA1 Message Date
Cody Robibero
24022092ad
Merge pull request #17456 from Shadowghost/fix-extras
Fix extras naming and version assignment
2026-08-02 14:25:00 -04:00
Cody Robibero
e816870f67
Merge pull request #17416 from Shadowghost/enable-duplicate-playlist-children
Allow duplicate LinkedChildren for Playlists
2026-08-01 08:06:02 -04:00
Shadowghost
8293eb26b9 Fix playlist entries being lost on migration and library scans 2026-07-29 14:40:49 +02:00
Shadowghost
79a55327dc Fix extras naming and version assignment 2026-07-27 12:12:17 +02:00
Shadowghost
ca1f7af445 Fix incorrect year on local trailers 2026-07-21 20:27:04 +02:00
theguymadmax
ffe075650c
Add TVDB provider ID support for movies (#17255)
Add TVDB provider ID support for movies
2026-07-20 12:23:20 +02:00
theguymadmax
43a152359e Fix ghost entries when deleting library paths 2026-07-03 14:12:56 -04:00
Bond-009
3741d71965
Merge pull request #17116 from theguymadmax/fix-root-folder-parsing
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Format / format-check (push) Waiting to run
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Artifact (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI Publish / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / main (push) Waiting to run
2026-06-21 00:10:26 +02:00
Bond-009
bebb7ce803
Merge pull request #17112 from theguymadmax/add-year-to-series-resolver
Fix series year lost during name parsing
2026-06-18 17:46:23 +02:00
theguymadmax
b9271eb199 Skip parsing root-level folders in SeriesResolver 2026-06-15 19:37:39 -04:00
theguymadmax
068bbb7981 Fix series year lost during parsing 2026-06-15 11:42:17 -04:00
dkanada
f4bab458a2 improve book resolution from filename 2026-06-15 11:31:49 +09:00
jakobkukla
37350282cc Run tree-wide dotnet format 2026-05-21 20:48:41 +02:00
Shadowghost
c91f640d37 Support stacked multi versions 2026-05-13 21:17:40 +02:00
Shadowghost
d5bb7756f1 Implement multiple versions for episodes. 2026-05-11 16:41:22 +02:00
Bond-009
33ed52b8ee
Merge branch 'master' into feature/season-provider-id-from-path 2026-05-06 20:49:19 +02:00
Niels van Velzen
d648aba881
Merge pull request #16611 from LmanTW/master
Ignore season directories with no video for TV Shows
2026-05-06 19:08:05 +02:00
Seven Rats
f5f75ed2e1
feat/audiobook_chapters (#16518)
feat/audiobook_chapters
2026-05-03 12:18:20 +02:00
LmanTW
3ef7ada736
Ignore season directories with no video for TV Shows 2026-04-10 18:59:59 +08:00
Marc Brooks
aa96ff42e6
Parse provider IDs from season and episode folder/file names
Season and episode directories/files can now include provider ID
attributes in their names (e.g. "Season 01 [tvdbid=22222]" or
"Show S01E01 [tmdbid=99999].mkv"), consistent with the existing
behavior for series folders.

Supported providers: imdbid, tvdbid, tvmazeid, tmdbid.

Adds TmdbSeasonExternalId and TmdbEpisodeExternalId so that
the TMDB season and episode IDs are surfaced in the metadata editor.

Seasons do not have their own IMDb IDs, so we don't support imdbid parsing
in SeasonResolver. Instead, generate IMDb season URLs via
ImdbExternalUrlProvider using the parent series' IMDb ID and the
season number, matching the IMDb URL format:
imdb.com/title/{seriesId}/episodes/?season={N}

Add tests for the ExternalUrlProviders.
2026-03-25 18:47:40 -05:00
Louis
995d56d5ff
Recognize ".m4b", ".m4a", ".aac", ".flac", ".mp3", and ".opus" as an audio-book formats (#15377)
* Recognize ".m4b" as an audio-book format

- Has the resolver recognize the ".m4b" format as book
  - Jellyfin reverts to seeing the file as a music file without this check

* Recognize ".m4a", ".aac", ".flac", and ".mp3" as an audio-book formats

- All the formats supported in the docs will now be marked as type "Book"

* Add ".opus" as a supported Audiobook format

---------

Co-authored-by: Louis Sandoval <louis@sandoval.family>
2026-03-19 20:31:29 +01:00
dkanada
dd480f96cd
parse more information from book filenames (#15655) 2025-12-13 08:29:28 -07:00
theguymadmax
06fb300cff Backport pull request #14955 from jellyfin/release-10.11.z
Fix tmdbid not detected in single movie folder

Original-merge: def5956cd1

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-11-17 14:08:45 -05:00
theguymadmax
0845b0c258
Skip non-media folders in movie resolver (#14724)
* Skip non-media folders in movie resolver

* Ignorepatterns first
2025-09-07 13:02:52 +02:00
theguymadmax
d7faf9a327
Use filename for single videos (non-movie/null collections) in MovieResolver (#14162) 2025-06-08 19:52:25 -06:00
theguymadmax
0cea039445
Fix media detection for single video files with subfolders (#14140) 2025-05-22 07:05:23 -06:00
Michael McElroy
f02190c394
Fix for Issue #12142: Fix ExtraRuleResolver filtering out top level folders (#12170)
* Fix ExtraRuleResolver to stop filtering out libraries where the name of the base folder matches an 'videos extras' rule with an ExtraRuleType of DirectoryName

Currently the ExtraRuleResolver code doesn't know anything about the root folder of the current library. As a result, when we're attempting to add items in a library where the root folder has a name with a match in Emby.Naming.Common.NamingOptions.VideoExtraRules, the entire library is being ignored as a Video Extras folder.

Need to pass in the root folder of the current library to compare to the path of the current item being evaluated, and if we match the current item's folder to the root folder, then we ignore the ExtraRules with a type of DirectoryName and we continue to scan deeper in the library. Filters still apply to subfolders within the library itself.

* Update CONTRIBUTORS.md

* Update Emby.Naming/Video/ExtraRuleResolver.cs

* Update ExtraTests.cs

Add tests for this fix.

Also add missing tests in TestKodiExtras, TestExpandedExtras, and TestSample, and expanded TestDirectories into TestDirectoriesAudioExtras and TestDirectoriesVideoExtras. There were no checks for the theme-music folder name previously.

* Update ExtraTests.cs

Removed unnecessary "using System"

* In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4

* Update ExtraTests.cs

Remove empty lines in usings

* Revert "In MediaBrowser.Model, upgrade System.Text.Json from 8.0.3 (vulnerable - high risk) to 8.0.4"
2025-03-27 18:18:19 -06:00
Tim Eisele
dfb485d1f2
Rework season folder parsing (#11748) 2025-03-23 10:05:40 -06:00
Shadowghost
06c603428b Backport pull request #13059 from jellyfin/release-10.10.z
Exclude file system based library playlists from migration

Original-merge: 23de7e517e

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:43:33 -05:00
Bond_009
ecd2dab0a2 Add TrySetProviderId extension 2024-07-17 15:48:21 +02:00
Shadowghost
4a06b6d13b Backport pull request #11920 from jellyfin/release-10.9.z
Only set season path if season folder parsing was successful

Original-merge: d1c00ba4ed

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-05 17:02:54 -04:00
gnattu
0d0a2b4d58 Backport pull request #11886 from jellyfin/release-10.9.z
Fix multi-part album folder being detected as artist folder

Original-merge: d602b6dbc5

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:12 -04:00
Shadowghost
c0364fc766 Backport pull request #11719 from jellyfin/release-10.9.z
Move NFO series season name parsing to own local provider

Original-merge: a53ea029fa

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:40:55 -04:00
Shadowghost
29a293f9e7 Backport pull request #11647 from jellyfin/release-10.9.z
Fix season names

Original-merge: 2da06bc0b1

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:40 -04: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
7d28d08e08
Enable more warnings as errors (#11288) 2024-04-12 17:45:01 -06:00
Shadowghost
56c432a843 Apply review suggestions 2024-03-26 23:45:14 +01:00
Cody Robibero
033cfa59c4 Convert CollectionType to use lowercase enum names 2023-12-08 15:45:36 -07:00
Cody Robibero
906f701fa8
Convert CollectionType, SpecialFolderType to enum (#9764)
* Convert CollectionType, SpecialFolderType to enum

* Hide internal enum CollectionType values

* Apply suggestions from code review

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>

* Fix recent change

* Update Jellyfin.Data/Attributes/OpenApiIgnoreEnumAttribute.cs

Co-authored-by: Patrick Barron <barronpm@gmail.com>

---------

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>
Co-authored-by: Patrick Barron <barronpm@gmail.com>
2023-11-09 14:00:29 -07:00
Stepan Goremykin
8d7e4229ca Merge branch 'master' into fix-resharper-warnings
# Conflicts:
#	Emby.Server.Implementations/Net/SocketFactory.cs
#	RSSDP/SsdpCommunicationsServer.cs
#	RSSDP/SsdpDeviceLocator.cs
#	RSSDP/SsdpDevicePublisher.cs
2023-10-12 20:11:16 +02:00
Stepan Goremykin
f84469d500 Remove redundant using directives 2023-10-08 00:50:02 +02:00
Stepan Goremykin
8ea812b65d Reduce string literal length by using verbatim string 2023-10-08 00:26:12 +02:00
Bond_009
b176beb88e Reduce string allocations
Some simple changes to reduce the number of allocated strings
2023-10-06 01:04:25 +02:00
Bond_009
57891e7639 PhotoResolver: change how generated images are detected
Backdrops/fanart are generated as (backdrop)|(fanart)[0-9]*.extension

Fixes #7830
2023-09-27 17:20:55 +02:00
Bond_009
b5f0760db8 Use RegexGenerator where possible 2023-06-28 17:07:57 +02:00
Cody Robibero
81cf798430
Merge pull request #8203 from Shadowghost/nfo-season-names
Implement NFO named season parsing
2023-06-10 07:27:54 -06:00
Bond_009
b44c9eb88e Check for Imdb id for series 2023-05-23 16:23:25 +02:00
Shadowghost
6ddc449a89 Implement NFO named season parsing 2023-05-20 18:57:56 +02:00
Shadowghost
a8cdf4434b
Fix access to playlists not created by a user (#9746) 2023-05-12 07:11:59 -06:00
Stepan Goremykin
910617bbc3 Remove redundant 'else' keywords 2023-04-06 19:38:34 +02:00