mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Write metadata back into epub file #2323
Open
opened 2026-04-25 00:06:07 +02:00 by adam
·
7 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
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#2323
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 @mrburns-42 on GitHub (Oct 22, 2024).
Type of Enhancement
Server Backend
Describe the Feature/Enhancement
Write updated metadata back into epub files.
Why would this be helpful?
As soon as I download the epub from abs (say on an ebook reader) it still gets the old embedded metadata as the embedded metadata isn't updated.
Future Implementation (Screenshot)
"Embed Metadata" like the one used for audiobooks.
Audiobookshelf Server Version
2.15.1
Current Implementation (Screenshot)
No response
@nichwall commented on GitHub (Oct 22, 2024):
Yeah, ABS doesn't do any modifications to any ebook files. Not sure if that is planned due to there being so many weird edge cases with ebook formats and there already being other tools which have good ebook support like Calibre and Kavita.
@kuldan5853 commented on GitHub (Dec 8, 2024):
From my personal experience, ABS is already better for ebooks than Kavita (and Kavita also has no metadata management at all, you need to do the metadata tagging outside for it to work - and even then it does not really).
Calibre is a nice tool but their metadata scrapers for online are atrociously bad - it can't scrape a single book I have correctly, vs. ABS doing it pretty competently against google books.
I also see a lot of value in adding this (or well, at least I'd be a happy camper if you guys eventually get around to it).
@leleogere commented on GitHub (Feb 20, 2025):
About weird ebook edge cases, it might be interesting to see how Calibre-Web Automatic manages them. They write back the cover and metadata to the epub when modified, so that when downloaded to an ereader, they are displayed exactly as they are displayed in the WebUI.
Currently, it is quite frustrating to spend so much time polishing all the metadata in the UI, and not being able to enjoy them on my reader.
@hbilbo commented on GitHub (May 6, 2025):
If this is not something the team is interested in implementing right now would it be possible to have ABS utilize the calibre binaries to embed the metadata? Or potentially even a custom user script to run on your ebooks when downloading to ensure metadata is embedded (not sure how difficult this would be and is maybe less ideal than using calibre)?
This is the one feature in my opinion that is missing and is holding me back from using ABS for ebooks. Like @leleogere said not really any point in curating metadata if you can't see that info in your ereaders. I wouldn't mind having calibre installing/running alongside ABS if it meant making embedding metadata possible until it's a native feature.
@BlazeWits commented on GitHub (Jun 13, 2025):
I second this. Adding a 'Quick embed Metadata' option to ebooks (right now only supports audiobooks) would be really nice.
@GinSoakedBoy commented on GitHub (Jul 10, 2025):
If embedding metadata is tricky, it would be great to have a button that replaces the cover within the epub file.
For what it's worth I was able to have Copilot create this .js script that replaces a cover image with a cover.jpg file within the same directory as an epub file (checking if the image file is the same or not). Would something like this work?
@drewjohnston13 commented on GitHub (Mar 7, 2026):
Seconding that this would be very nice. Even just the small change of quick embed updating the cover image of any epub at the location would be really helpful for me personally, but I have used ABS to update a lot of metadata in my library, and it's always disappointing to load up an epub somewhere else and realize none of my work persisted there.