mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Support OPDS to allow eReaders to directly download books #1276
Open
opened 2026-04-24 23:38:08 +02:00 by adam
·
21 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#1276
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 @adamshand on GitHub (Jul 22, 2023).
Describe the feature/enhancement
It would be fabulous if Audiobookself supported OPDS.
OPDS is a simple, Atom based API which allows readers to browse and download books. It is supported by many readers including Aldiko, Moon, MapleRead, Marvin, FBReader etc and servers like Calibre Web and Jellyfin.
More information at: https://en.wikipedia.org/wiki/Open_Publication_Distribution_System
There is an extended version called OPDS-PS, which allows syncing of read progress between readers. Sadly, this currently only has very limited support.
https://wiki.kavitareader.com/en/faq/external-readers
@Budlyte commented on GitHub (Jul 23, 2023):
Does OPDS support syncing played status with the host? Every OPDS implementation I ever used with a comic server never synced the read status back with the server and was only stored in the client app.
@adamshand commented on GitHub (Jul 24, 2023):
OPDS-PS supports this.
@Jdiesel87 commented on GitHub (Aug 3, 2023):
I don't know the specifics on the connection type and whether the sync in happening through OPDS but I am using Komga and Tachiyomi that supports read state and progress on the server side.
@turnercore commented on GitHub (Sep 13, 2023):
I would love this feature, currently I have to use another self-hosted app pointing at the same library to use OPDS and it would be very nice to include this feature in this app. The built-in ereader is ok, but there's lots of nicer ereader and comic book readers that can take advantage of OPDS
@Budlyte commented on GitHub (Sep 13, 2023):
Tachyomi<->Komga isn't OPDS, it uses Komga's API
I use that combo too, and it's great.
@KaiStarkk commented on GitHub (Nov 11, 2023):
Currently the gap is with the e-reader clients. A couple of them support OPDS-PS (like KoReader), but last I checked they don’t support downloading files, storing local progress, then synchronising later.
ABS’s API is wayy more feature rich than OPDS-PS.
The best solution at this point seems to be finding an ereader that runs Android, like the Boox. That way you can run audiobookshelf-app on e-ink natively. Interested to know if anyone has done this.
This is until either ABS creates an e-reader app, or other e-reader apps implement an Audiobookshelf integration.
Would love to see KoReader implement ABS.
@DDriggs00 commented on GitHub (Feb 7, 2024):
If OPDS is implemented, I think it would be a good idea to implement OPDS-PS, since progress tracking (which OPDS does not support) is a key feature of Audiobookshelf.
@turnercore commented on GitHub (Feb 8, 2024):
@KaiStarkk I have a Boox and tried ABS with it, and still found it to not be a great experience. I put everything in a folder structure that ABS likes as it is my main thing, and then I run Kavita on top of it which finds the ebooks and runs OPDS. Then I use the OPDS connection on Boox to get the ebooks. It's not as convenient as ABS, but the native ereader experience is so much better it's worth doing it that way, which is why having OPDS/OPDS-PS built in would be nice and something I'd always push for.
That said, if ABS had a nice enough ereader, or there was another app that used the ABS API, that would work too, although obviously not be as extensible. For an ABS ereader to compete with what is out there currently, it would need progress saving/syncing (ideally with the audiobook), notes/comments/highlight support, offline download support (very important), no motion or animations for the e-ink display, and probably some other features that a lot of ereader programs already have.
@Budlyte commented on GitHub (Feb 8, 2024):
As an avid audiobook listener, that is thankful everyday for ABS, I wonder if there aren't already ebook server/managers out there. Is calibre not good? Or Kavita? Komga?
The rest of us had nothing but booksonic for years, and I'd hate for something that has an alternative to detract from ABS's primary goal.
@KaiStarkk commented on GitHub (Feb 8, 2024):
Ehh, telling people to go elsewhere is bound to raise hackles right, not a great angle.
The good thing is it's open source, so it's already democratic. The maintainer isn't a resource we're competing for, he'll do what he wants to do. If there's enough demand for other features, contributors can provide them.
@KaiStarkk commented on GitHub (Feb 8, 2024):
Yeah it's great that Boox supports OPDS natively.
@kabaga commented on GitHub (Apr 29, 2024):
This feature would be great thing to have especially if you have multiple devices.
@cutzenfriend commented on GitHub (Oct 24, 2024):
+1 for this. I would be able to ditch calibre-web and just use ABS for Audio and eBooks!
@nerdpersonthing commented on GitHub (Nov 27, 2024):
+1 as well from me.
As an example, my use case is wanting to read books on an Android e-reader and have all of my read progress synchronized between devices and the server. ABS's built-in EPUB viewer is decent, but in my opinion it is not configurable enough, and has issues with gestures and animations (see https://github.com/advplyr/audiobookshelf-app/issues/800 and https://github.com/advplyr/audiobookshelf-app/issues/1398). Until the point where ABS works well on an e-ink display, I am using KOreader to read books locally, and Calibre's webserver to host an OPDS feed that KOreader can access (though it doesn't support OPDS-PS for syncing, and I'm considering switching to calibre-web or Kavita).
If ABS supported OPDS (and in particular, OPDS-PS, like Kavita does), it could replace pretty much all other ebook management software on my server side. Having a modern, open-source alternative to Calibre that properly supports syncing between devices would be a godsend.
@petr-prikryl commented on GitHub (Mar 3, 2025):
Hello I just released test version of OPDS server for audiobookshelf. Just now it supports no auth OPDS. I am planning to add OPDS-PS later. You can try it and tell me if there are any problems, i only tested epub and pdf files and both quite worked, but heavy pdfs had some issues with performance.
https://github.com/petr-prikryl/OPDS-ABS
@b3nd1k commented on GitHub (Mar 12, 2025):
@petr-prikryl Am I correct in assuming that the OPDS-ABS connects directly to each user’s API? If I want to serve two different users, would I need to run two separate Docker containers, each with its own API key? It would be great if it was tied to the server and you authenticated with your ABS username and password.
@petr-prikryl commented on GitHub (Mar 12, 2025):
Yes, for now. I will try to implement multiuser later this week for now it is only for one user.
@programhlpr commented on GitHub (Apr 22, 2025):
I use pocketbook e-readers and their apps for page sync. I would be thrilled even to have a basic OPDS implementation where I could download books via OPDS to my devices. I prefer the audiobookshelf interface to Kavita and Calibre-web. It is a lot more polished.
@petr-prikryl commented on GitHub (Apr 27, 2025):
Hello, we are making iprovements to support varius formats, search, categories and multiuser suppor via opds auth. Little bit more testing and we can push update
@GinSoakedBoy commented on GitHub (Jul 15, 2025):
Any updates on progress sync?
@frockett commented on GitHub (Jul 16, 2025):
I would also love an update on the OPDS implementation!