mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Bug]: Embedding metadata into original file just does not work. #1693
Open
opened 2026-04-24 23:55:17 +02:00 by adam
·
10 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#1693
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 @iamfree139 on GitHub (Jan 26, 2024).
Describe the issue
First of all, I wanted to fix the metadata of an audiobook. So, I matched the book, which did most of the job. Then, I chose a cover that I liked. After that, I wanted to embed the now-corrected metadata into the original file, so I clicked on 'Tools' and then pressed 'Quick Embed'. However, after completion, when I opened the file in Finder, nothing appeared to have changed.
I expected the cover art to have been changed.
So, then I tried with another book. This time, I matched the book, but there was a delay when I clicked on a chapter and it began to play. This issue was fixed by using the 'shift times' feature, which I set to -3. After this adjustment, it played perfectly. Then, I pressed 'Quick Embed' again. After completion, when I opened the file in Finder, nothing appeared to have changed.
I expected the cover art and chapter times to have been changed.
I wanted to change the metadata of my audiobooks, but I couldn't find any fully open-source app with a GUI and the ability to import data from Audible automatically. That's why I am trying Audiobookshelf.
Steps to reproduce the issue
Audiobookshelf version
2.7.2
How are you running audiobookshelf?
Docker
@iamfree139 commented on GitHub (Jan 26, 2024):
Audiobook 1 in audiobookshelf app


Audiobook 1 in FInder
Audiobook 2 corrected chapter after assigning shift times



Audiobook 2 Chapter in FInder
Audiobook 2 Cover in Finder
@advplyr commented on GitHub (Jan 26, 2024):
This is a known issue with specific m4b files. It hasn't been investigated since Tone will be replaced with ffmpeg soon.
@iamfree139 commented on GitHub (Jan 27, 2024):
Thank you for replying, i guess my Audiobook journey has to wait.
@sbrjct commented on GitHub (Feb 18, 2024):
I've merged several .mp3 files into a single .mp3 for an audiobook (to avoid transcoding artifacts). I tried embedding the metadata into the .mp3 but, as above, it doesn't stick. No chapters or cover art changes noted in Files or other apps. Is this also a bug with Tone? I made sure it wasn't a permissions issue.
@Indemnity83 commented on GitHub (Feb 25, 2024):
Any ETA on "soon"? I just started to clean up my audiobook library using this great tool, but if I can't fix the metadata then I probably need to wait like @iamfree139. Is there a nightly build with ffmpeg already?
@iamfree139 commented on GitHub (Feb 26, 2024):
@Indemnity83 if you must i suggest using ffmpeg directly, You can use it the cmd below
How to Edit Audiobook metadata using FFMPEG
To Embed a Cover Art
ffmpeg -i "input.m4b" -i "cover.png" -map 0:a -map 1:v -c:a copy -c:v copy -disposition:v attached_pic -metadata:s:v title="Album cover" -id3v2_version 3 "output.m4b"
To Embed Author name
ffmpeg -i "input.m4b" -c copy -metadata artist="Walter Isaacson" "output.m4b"
To Embed Book name
ffmpeg -i "input.m4b" -c copy -metadata album="The Innovators" "output.m4b"
To Add chapters Metadata
First Remove Chapter Metadata before adding
ffmpeg -i "input.m4b" -c copy -map_chapters -1 "output.m4b"
Then Add Chapter Metadata
ffmpeg -i input.m4b -i chapters.txt -map_metadata 1 -codec copy output.m4b
Misc
To Remove First 2.05 second
ffmpeg -i input.m4b -ss 00:00:02.05 -c copy output.m4b
@thedavidthomas commented on GitHub (Apr 2, 2024):
Same here, seems to just refuse to embed the metadata in some .m4b files randomly.
Also tried with Tone directly and it might be a bug with them since running tone commands manually also don't seem to embed anything.
Am mostly looking to embed chapters. The
metadata.jsonfiles from audiobookshelf have the correct data (I have these saving alongside the .m4b file) is there anyway to generate a.chapters.txtfile from the metadata.json?I was able to use mp4chaps util from the MP4v2 Library to make txt files for each of my books so was thinking if audiobookshelf could edit these somehow or I could run a script to update them from the metadata.json files could use those to embed back.
@Enissay commented on GitHub (May 7, 2024):
A similar issue drove me nuts since it seems to happen only with some files randomly!
It would be nice to generalize this and create a bash/python script that would read everything from the
metadata.jsonand embed it into the corresponding file... This would be used only on thesedivergentfiles while awaiting for an official fix on ABS.Edit:
I will give it a try soon, but the tricky part is to make sure the new metadata is stored the same way as the old to ensure all files are the same. From what I saw so far, ABS creates custom metadata names so it will be tricky to find them all and map them... Any help would be welcome...
@BrianAker commented on GitHub (Sep 19, 2024):
This may be the answer, $var in the following case is m4b file, $metadata_file is where you will dump the data:
ffmpeg -nostdin -loglevel quiet -i "$var" -f ffmetadata "$metadata_file"
Now check to make sure major_brand is correct:
grep -q '^major_brand=M4A' "$metadata_file"
If not, this is my suggested fix:
sed -i 's/^major_brand=./major_brand=M4A/' "$metadata_file"
sed -i 's/^compatible_brands=./compatible_brands=M4A isomiso2/' "$metadata_file"
And then:
ffmpeg -nostdin -loglevel quiet -i "$tmp_file" -i "$metadata_file" -map_metadata 1 -c copy "$var"
I can post my entire script, but the above is the basics. I have found that when major_brand is broken, normally compatible_brands is as well.
I hope this is useful for others, keep in mind, I could be wrong about the above, but it does fix things for me.
@advplyr commented on GitHub (May 18, 2025):
Tone was replaced with ffmpeg a while ago. Is this still an issue?