mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-08-29 14:47:20 +02:00
[Enhancement]: Metadata Scanner should be able to add multiple Series (or Sub-Series) via the additonal metadata sources #3082
Open
opened 2026-04-25 00:13:34 +02:00 by adam
·
0 comments
No Branch/Tag Specified
master
auth_sessions_enhancements
account_sessions_table
logout_all_devices
pw_change_invalidates_sessions
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.36.0
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No labels
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#3082
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @saltedlolly on GitHub (Nov 11, 2025).
Type of Enhancement
Server Backend
Describe the Feature/Enhancement
In this issue, I propose an improvement to how the metadata scanner operates to better allow for adding multiple series to a single audiobook. Currently, only the first series found is added (unless you list multiple in the CONTENTGROUP meta tag - more on this below).
Additional metadata sources should be able to add other series, or sub-series, provided they have not already been added from a previous source.
A Detailed Explanation
Organizing multiple series via folders and meta tags
For this explanation, I will use the following example audiobook which can potentially belong to multiple series:
It is currently possible to add multiple series to the CONTENTGROUP id3 tag so all three series could be added in the meta tags like so:
However, there is a condiderable downside to this, particularly with large series, where the sequence numbering may change over time. If a new book later gets added to the middle of the sequence of the Cosmere, you need to update the mp3 metadata of many of your other books simple to accomodate this one change.
A better solution is to organize in this hybrid method using both meta tags and folder structure. The book goes in this folder to set it to "The Cosmere #16":
Then in the file meta tags you can include additional sub-series like this:
This makes it easy to quickly adjust the overall book order in "The Cosmere" series by changing vol number in the folder name, without needing to touch the metadata of any other books in the series.
The sub-series numbering are less likely to change, and also only require changing a few files if they do. This keeps things cleanly organized, while also supporting multiple series per book.
Now to the scanning part...
Scanning multiple series for a single book
Let's assume for this example that our scanner priority is set as follows:
The problem right now is that when Audiobookshelf scanner finds the CONTENTGROUP entry in the audio file meta tag, it sets this as the series and then ignores any additional series sources. (e.g. a series set in the folder stucture is ignored, simply because the series was already set via the meta tags.)
The Solution
I propose that scanner be changed to allow it to append another series or sub-series, from a later metadata source, provided the same series has not already been added via a prior metadata source.
So in the above example, when scanning the meta tags it would find and add the series:
The Mistborn Saga #4Mistborn: Wax & Wayne #1Then when it scans the folder structure, it will see that book is also in "The Cosmere" (Vol 16). Since "The Cosmere" series has not already been added via the meta tags, it will add it as an additional series for the same book:
The Cosmere #16Important
The higher priority scanner will always take precedence, so a series that exists in multiple sources will use the first one it finds based on the metadata order of precedence, unless the latter series entry includes a number and the former does not.
So in the above example, if the folder structure remained the same, but the audio file meta tags contained:
Then the series added would be:
The Cosmere #20The Mistborn Saga #4Mistborn: Wax & Wayne #1(The Cosmere is not
#16as set in the folder structure, as the#20was found first, and that takes precedence.)Similarly, if The Cosmere was set in the first source but without a series number:
Then the series added would be:
The Cosmere #16The Mistborn Saga #4Mistborn: Wax & Wayne #1This is because if the first source has no series number, but the second source does, it will add the latter number. If the first source has a series number
The Cosmere #16and the second source does not, then the first source would take precedence, since a series number is already set.Why would this be helpful?
Benefits
The advantage of this improvement to the scanner, is that multiple sources that individually can only specify a single series and number (such as using folder structure) can be supplemented to add additional series via a secondary source (such as via the meta tags).
It also allows users to organize their books into series folders, helping to keep their audiobooks well organized, while still being able to include metadata for sub-series, and other series outside of the current folder structure.
It also means for that for series that are only part of a single series, you can rely solely on folder structure, which makes it very quick and easy to organize you audiobooks for use in Audiobookshelf.
Future Implementation (Screenshot)
I explained this in detail above.
Audiobookshelf Server Version
v2.30.0
Current Implementation (Screenshot)
The scanner currently only uses the series metadata from the first source it finds, and ignores any additional series. In many cases, this means that only a single series per book can ve added via the scanner, escially if relying on folder structure.