mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Increase native compatibility with the files migrated from Audible using Libation #1678
Closed
opened 2026-04-24 23:54:29 +02:00 by adam
·
4 comments
No Branch/Tag Specified
master
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.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 Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#1678
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.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @DaTurkeyslayer on GitHub (Jan 21, 2024).
Describe the feature/enhancement
Libation is an incredibly powerful tool for people migrating from Audible to their own hosting server solution. It automatically scans your Audible account and downloads all of your audiobooks, automatically linking them already with the different library sources. Not only can it do this one time, but it can also constantly be monitoring for new books being purchased, and then can download the file and put it directly into your ABS library folder.
It would be an absolute gamechanger for Audiobookshelf to incorporate the information Libation is able to grab from Audible such as "Last Heard, Bookmarks, Clips & Notes". Libation allows for this information of each of your audiobooks to be downloaded as either a CSV, Xlsx, or JSON, which if ABS (see screenshots) could intake and allow the end user to select for which ABS user the information would be applied too, this would allow for incredibly efficient and streamlined migration from Audible to ABS, for multiple users who might already be using Audible's library sharing functionality.
Another quick note on this too... currently Libation applies the Genre tags to the file as a single string, instead of semicolon separators, so if ABS was able to clear those out before adding them to the library that would also streamline migration (as of now you have to manually remove all tags one by one and then re-match to the database to get them added correctly)
Thank you so much for taking the time to look through this! Let me know if you have any questions but hopefully this makes sense! Thank you also for ABS as a whole, this is an absolutely amazing tool! Thank you!!!!
@nichwall commented on GitHub (Jan 21, 2024):
This is probably outside the scope of ABS for similar reasons as this FR https://github.com/advplyr/audiobookshelf/issues/2112, but some of the parts could be implemented.
How would ABS be able to tell which account the files should be added to, since all books can be located in the same folder but could come from more than one user?
Really the only way I could see that working would be to have this only apply when using the upload feature (and not adding through the filesystem) since then the server knows which user is adding the book, which would then not be a consistent "adding books" process. It could also be done by requiring a library to have distinct folders by user, and linking a user to a folder, but that also feels like it would not be a good user experience and confusing documentation.
Another option would be to still ignore the extra notes and information during scan, and having an upload field that a user could use to import notes and bookmarks. (Related FR: https://github.com/advplyr/audiobookshelf/issues/2013, https://github.com/advplyr/audiobookshelf/issues/1890)
Tags and genres can include commas, so if there is not a unique separator, there isn't really a good way to automatically replace the tags (related https://github.com/advplyr/audiobookshelf/issues/1998). This could possibly be handled by this FR, but would need to be implemented differently with substring matching or something. https://github.com/advplyr/audiobookshelf/issues/1864
@advplyr commented on GitHub (Jan 21, 2024):
I agree with @nichwall, I think this is outside the scope of the project. Abs has API endpoints to do everything like adding bookmarks so perhaps someone could write a script for that.
As for the genre tag I think you should open up a FR with libation and request changing how genres are embedded in audio files. As nichwall pointed out Audible for example uses commas in some of there genres which would break a comma separated list. I don't think we should add an additional setting just to skip importing genre meta tags. There is a setting in the library scanner settings to skip using audio file meta tags altogether.
@DaTurkeyslayer commented on GitHub (Jan 22, 2024):
Thanks for the insight and response! Yeah this is all new to me!
I did just try turning the setting in the library scanner to skip using the
audio file meta tags, however that also then meant all the books lost there
chapters, so that doesn't work for this use-case.
Hmm, well yeah my primary point for making the request is that I do believe
the more streamlined the process of offboarding to audible and into ABS, in
general, the better. And right now that process even with Libation is kinda
clunky and you lose data, even though it is all there. But yeah I
understand such changes are technically out of scope, but if someone were
to tackle it I think there would be some sweeping benefits. :)
Again appreciate your time and everything that has been built out in ABS,
super thankful to be able to get this set up for my dad as he has been
frustrated by not having a central place for all of his audiobooks for a
good while now.
Thanks!
On Sun, Jan 21, 2024 at 2:18 PM advplyr @.***> wrote:
@nichwall commented on GitHub (Jan 22, 2024):
Another thing you could do since you're already getting the books from Audible is to make sure the ASIN is in the directory structure to ensure the match is correct, and then can use the chapter lookup to pull the chapter data. I don't think the chapter lookup works for batch operations yet, and does not account for shifting timestamps (such as if you're trimming the Audible intro/outro). As it is right now that would be more clicks, but would help solve the genre issue.