advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
5.75k stars 395 forks source link

[Enhancement]: Support OPDS to allow eReaders to directly download books #1953

Open adamshand opened 11 months ago

adamshand commented 11 months ago

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 11 months ago

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 11 months ago

OPDS-PS supports this.

Jdiesel87 commented 11 months ago

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.

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 9 months ago

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 9 months ago

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.

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.

Tachyomi<->Komga isn't OPDS, it uses Komga's API I use that combo too, and it's great.

KaiStarkk commented 7 months ago

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 5 months ago

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 5 months ago

@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 5 months ago

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 5 months ago

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.

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 5 months ago

@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.

Yeah it's great that Boox supports OPDS natively.

kabaga commented 2 months ago

This feature would be great thing to have especially if you have multiple devices.