mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Enable EPUB 3 Support in Audiobookshelf for Synced Audiobooks and Ebooks #2062
Open
opened 2026-04-25 00:03:05 +02:00 by adam
·
26 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#2062
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 @ashwinm4friends on GitHub (Jun 17, 2024).
Type of Enhancement
Server Backend
Describe the Feature/Enhancement
Audiobookshelf currently supports various audiobook and ebook formats. This feature request is to enable support for EPUB 3 files, which allows for synchronized audiobooks and ebooks within a single file. EPUB 3 is a versatile and widely adopted format that can integrate both text and audio, providing a seamless reading and listening experience.
Why would this be helpful?
Integrating EPUB 3 support in Audiobookshelf would provide several benefits:
Unified Experience: Users can enjoy a synchronized reading and listening experience without needing to switch between separate files for text and audio.
Enhanced Accessibility: EPUB 3 format supports features such as text highlighting and navigation, which can be beneficial for users with visual or reading impairments.
Improved Comprehension: Synchronized text and audio help in better comprehension and retention of information by reinforcing the content through both reading and listening.
Support for Dyslexic and Visually Impaired Users: The synchronization of audio and text can significantly aid users with dyslexia or visual impairments by allowing them to follow along with the text as they listen, improving their reading experience and accessibility.
User Convenience: This feature simplifies the process of managing and accessing audiobooks and ebooks, as users would only need to handle a single file format.
For reference, Storyteller (https://smoores.gitlab.io/storyteller/) already provides the capability to create EPUB 3 files with synchronized audio and text. By implementing EPUB 3 support, Audiobookshelf can leverage the advanced features of this format to offer a richer, more accessible, and more integrated user experience.
Future Implementation (Screenshot)
The EPUB 3 format allows for precise synchronization of audio with text, enabling features such as word-level or sentence-level highlighting. As the audio plays, the corresponding text is highlighted, providing a dynamic and engaging reading experience. Implementing this feature in Audiobookshelf will bring significant value to users by offering a more interactive and supportive reading environment.
Audiobookshelf Server Version
latest
Current Implementation (Screenshot)
No response
@advplyr commented on GitHub (Jun 17, 2024):
This reads like ChatGPT.
We have discussed this a lot #189 #1723 #601
@yourmoonlight commented on GitHub (Aug 11, 2024):
If Audiobookshelf could achieve the synchronization of ePub and audiobooks, it would be a very popular feature.
@WickedSquirrel commented on GitHub (Oct 17, 2024):
I think it's something entirely else.
It wouldn't require abb to generate anything.
In a epub3 the text and the Audiofiles are already there and synchronised. Abb would just need to support it, maybe give us a toggle to switch between reading and listening or have both at once.
@coandco commented on GitHub (Oct 25, 2024):
I too would be very interested in EPUB3 support.
@WickedSquirrel commented on GitHub (Dec 25, 2024):
@advplyr any update on this?
@nichwall commented on GitHub (Dec 25, 2024):
There has not been additional work on e-reader support since this was opened.
@kurumushi commented on GitHub (Dec 29, 2024):
For reference if this ever gets looked at, this is the epub standard being asked for:
https://www.w3.org/submissions/epub-mediaoverlays/
Referenced here as well: https://www.w3.org/TR/epub-33/#sec-media-overlays
@dabigc commented on GitHub (Jan 11, 2025):
For those that want this today, Storyteller looks like it might be a good fit (granted, I believe it's in beta). The fact that it has an API server makes me wonder if it might one day be extensible for use in ABS without ABS needing to perform the generation, etc. If EPUB 3 supports this natively, it seems like Storyteller might be good to generate the EPUB 3 files and ABS might then only need to support the standard. Just throwing this out there as I prefer ABS and am sticking with it but for those that are eager, this might be a good solution.
@coandco commented on GitHub (Jan 11, 2025):
Yes, that's the feature request for now -- just play existing synced-audio/text EPUB3 files, even if they're generated somewhere else.
@dunia01 commented on GitHub (Feb 10, 2025):
This would be great, really.
@kurumushi commented on GitHub (Feb 22, 2025):
After looking at it I think this is much more involved than everyone may think. When you play an audiobook via audiobookshelf, it just asks the browser to play the media file. So in order for this to happen, you'd need either A. Browsers themselves to support epub3 synced. Or B. an entirely custom player interface.
@dkbarn commented on GitHub (Feb 23, 2025):
There are web-based libraries & tools out there with EPUB3 "read along" functionality that could potentially be leveraged or at least used as inspiration. See for example:
@kurumushi commented on GitHub (Mar 12, 2025):
Apparently #189 also has the same request, so just referencing it here.
@Astorsoft commented on GitHub (Mar 30, 2025):
This was said above, this has nothing to do with #189, #1723 or #601. It isn't about generating a merge of an audiobook and epub like Storyteller does (and it does it great) or faking it through text to speech. This is about being able to read/listen the output of storyteller in Audiobookshelf.
Not sure what the original requester had in mind, but the feature would make more sense on the client side (ie the iOS or Android apps) rather than the server side. FYI Storyteller does have a smartphone client to play those epub3 files, but there is some appeal is centralizing everything into one app like Audiobookshelf.
@kurumushi commented on GitHub (Mar 31, 2025):
Stupid me, even though I use the mobile app, most of my comments above about web browsers doesn't apply there at all.
For reference then, it looks like the mobile clients are using epub.js, so it's probably best to see if that supports synced audiobooks, and request changes over there before anything could be done in the audio bookshelf mobile app.
@eserero commented on GitHub (Apr 3, 2025):
hmmm - interestingly I just found out that calibre ebook viewer can manage epubs that I created with storyteller, and it can do so also in the web client. it works in the desktop and my phone browser even have some limited offline capabilities. the browser reader is actually very good - very feature rich and can do quite a bit. Colibrio seems even nicer, but I think its not free. I wonder if there is a way to use the calibre reader in audiobookshelf
@Jdiesel87 commented on GitHub (May 10, 2025):
I just got around to generating a few Epub3 books using Storyteller. The process was relatively easy. It would be great to be able to play these books in ABS.
@wallaby-gopher commented on GitHub (Jun 9, 2025):
were you able to sync progress from calibre to audiobookshelf? It'd be great to have progress the same across platforms.
@xrishox commented on GitHub (Aug 19, 2025):
this would be a huge boon of a feature. it's also an obvious feature for a project that puts such a strong focus on supporting both ebooks and audio books. it wouldnt need to implement support to produce these types of books, since that is already handled by storyteller. it would just need to be able to read them.
@andersonimes commented on GitHub (Oct 26, 2025):
One stepping stone here that would be nice for users of Storyteller might be to simply have the ability to play epub3 files like audio files - effectively treating them like m4b files today. This way, we at least wouldn't have to duplicate files to support both formats.
@flboy1758 commented on GitHub (Nov 10, 2025):
I installed Storyteller and was amazed how easy it was to create audio synced epubs. I would love to be able to use audiobook shelf to consume these files instead of needing to manage two different apps.
@mattague commented on GitHub (Nov 25, 2025):
I feel like this would be a good alternative of doing the syncing in ABS is just too difficult.
@mattague commented on GitHub (Feb 14, 2026):
I don't know how relevant this still is (if ABS still uses that project), but that repo hasn't been updated in almost 6 years. I did find mention of a fork that has been worked on quite a bit:
https://github.com/intity/epub-js
@nichwall commented on GitHub (Feb 14, 2026):
Yes, this is still the library being used and we know it's out of date, but haven't found and implemented a suitable replacement yet. An updated fork might be easier to switch to.
@coandco commented on GitHub (Feb 14, 2026):
Might be worth checking out https://github.com/johnfactotum/foliate-js -- BookLore just switched to it for ebook reading and it's been good so far.
@Jdiesel87 commented on GitHub (Feb 14, 2026):
There is also Readium
https://github.com/readium