YACReader / yacreader

This repo contains the code of YACReader's desktop version.
https://www.yacreader.com
GNU General Public License v3.0
920 stars 94 forks source link

Support for adding OPDS catalogs as libraries #98

Open Difegue opened 4 years ago

Difegue commented 4 years ago

OPDS is an XML-based standard for exposing ebook libraries to readers.
It basically allows a reader to browse an online catalog and download the stuff he wants to read off the server instantly.

It's implemented by a few servers for comics/ebooks, namely Calibre, Ubooquity and LANraragi.

OPDS as a source is implemented by a number of mobile readers, but the desktop offerings are limited to say the least, even more so on Linux/macOS.

Since YACReader has support for multiple libraries already, being able to add OPDS catalogs would be a fitting/convenient feature to avoid duplication of metadata/downloading comics manually.
I realize YACReaderLibrary is already a server for the mobile versions, so this might not interest you at all. 😅

selmf commented 4 years ago

I'm not sure. Our desktop reader app does not have any network capabilities despite version check and the built-in dictionary/translator, so this wouldn't be trivial to implement. The library is a bit better suited to such tasks (I guess), but anything that is passed on to the reader needs to be local, so the reader can pick it up. On desktop, the library does not serve the pages but acts as a fancy launcher with callbacks for the reader. It would be nice if the reader could pick up pages from the library directly or via network, but we're not really there yet and there are other issues that need our attention …

Difegue commented 4 years ago

Oh right, I didn't explain this part correctly: Since OPDS is a standard meant for catalogs, it doesn't provide any form of streaming capabilities: OPDS readers download the file locally before reading it.
Think of it as a form of online catalog giving you the metadata and thumbnails at a glance.

There exists an extension to the standard that allows for page streaming, but it's only implemented by Ubooquity.

selmf commented 4 years ago

Not sure if we have the resources to tackle this now. It might be worth looking into after we have implemented other xml related stuff like #96

@luisangelsm what is your take on this?

Chirishman commented 9 months ago

@Difegue

desktop offerings are limited to say the least, even more so on Linux/macOS.

FYI Thorium Reader is available for all three now and is pretty darn good (at least for books, haven't tested it extensively with comics)

There exists an extension to the standard that allows for page streaming, but it's only implemented by Ubooquity.

Looks like there's another opds comic server with support for opds-pse which has implemented it now: https://komga.org/docs/guides/opds/

I'm currently running two servers in parallel, serving my ebooks etc to myself with a project called COPS out of my Calibre library and using YACReader Server to serve my comics/manga to myself. The comic/manga files are also being served by COPS but the limitations of the very much non-comics/manga focused reader I use for that (Kybook 3) has lead me to choose the YACReader mobile app for portable reading.

I will say though that the Kybook 3 app does do a better job than YACReader for iOS does at the moment with reading continuous scroll webtoon style content so I do read that stuff in Kybook.

Difegue commented 9 months ago

Well, this is a pretty old feature request -- My own server now implements OPDS-PSE as well, for the record.
I haven't looked at desktop OPDS clients in a long time, but thanks for the info!

Chirishman commented 9 months ago

Yeah, I did a big deep dive into OPDS readers for iOS (mainly focused on books not comics) a few days ago and today I've been poking around in here trying to figure out where to ask for better keyboard support for the mobile app so I searched "mobile" and this issue came up. Looks like maybe I have to hit up the support email though, this repo is just for the desktop stuff.