Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OPDS Catalog service #1253

Open
tonn opened this issue Jul 29, 2015 · 13 comments
Open

OPDS Catalog service #1253

tonn opened this issue Jul 29, 2015 · 13 comments
Assignees
Labels

Comments

@tonn
Copy link

tonn commented Jul 29, 2015

It provide way to share books (or articles in our case) in different eBook formats (for example ePub).

It is easy way to get many mobile clients, because, most of the mobile book-reading application can work with OPDS-catalogs. Unfortunately it will one-side integration - only reading articles, no tagging, mark as read etc.

@tcitworld tcitworld added this to the 2.1 milestone Jul 29, 2015
@tcitworld tcitworld self-assigned this Jul 29, 2015
@tcitworld
Copy link
Member

As wallabag currently handles epub, mobi and pdf export, I guess it wouldn't be much difficult. I guess a library exists for this.

@anarcat
Copy link

anarcat commented Apr 2, 2016

This would be huge for e-readers support and broader interoperability. This is what Wallabag is designed for!

As for "mark as read", maybe the article could be marked as read when it is downloaded? Not sure.

@tcitworld
Copy link
Member

https://github.com/mduplouy/silex-cops should help

@anarcat
Copy link

anarcat commented Apr 3, 2016

@tcitworld how so? it looks like a completely different app, a rewrite of the Calibre OPDS server, which is not at all what I am looking for. that would tap into the Calibre database (presumably?) while what we want here is for Wallabag site to generate an OPDS-like interface...

No?

@tcitworld
Copy link
Member

It's quite the only OPDS server written in php that I found. Of course we'll not use the full app but only parts of it. Writing a server and sticking to specifications is quite hard.

@anarcat
Copy link

anarcat commented Apr 3, 2016

Here's more information about the protocol.

It's a standard developed by the Internet archive and others. There are a few sample OPDS servers to get an idea from and compare:

It's based on RSS and HTTP, and is documented in a specifications, one being current (1.1, from 2011), and one in draft (1.2). It is unclear which version is currently implemented by various providers.

There's also this primer but it covers only the 1.0 protocol. It is, again, unclear what changes happened between 1.0 and 1.1, but one could probably diff the two specifications to figure that out.

Wikipedia also has a good introduction to the system, but not the protocol itself.

There is an online validator available. One can also use KOreader's OPDS support to test a feed on Kobo e-readers, or FBreader on desktops. Expect partial compatibility from clients - the Feedbooks people have designed a test server which allows testing clients and showing the level of compatibility. This discussion mentions that:

Calibre2OPDS has done some good work in being OPDS 1.1 compliant, and usually Calibre does a bunch of incorrect/invalid things.

The OPDS community itself is not very active: the last standard dates from 2011 and has been in draft ever since. There has been no posts on the mailing list in 2016 and only one in 2015.

All said, I believe the protocol to be fairly simple, as you said, and I am not sure that reusing the COPS server is the simplest way, considering how deeply coupled the code there seems to be (I couldn't find an OPDS library we could use, for example).

Basically, the thing that would need to happen to wallabag for OPDS to be supported would be:

  • create navigation feed listing users, tags, or possible "facets" under which to search the catalog
  • those navigation feed entries point to acquisition feeds, which list the article themselves, as downloadable items (say as ePUB files)

This is the MVP of OPDS support. More features can be added:

  • add <link> tags to point to the relevant navigation feed on various pages (e.g. front page, user page, etc)
  • add a "search" feed that basically responds to search events and generates a tailored acquisition feed

Maybe it's just me, but it doesn't look that complicated. :) The specs are fairly well defined, and we don't have so many weird clients to deal with, or at least i don't. ;)

@tcitworld
Copy link
Member

Well, thanks for your research. I'll look into it.

@anarcat
Copy link

anarcat commented Apr 3, 2016

Oh, and another idea: OPDS has a concept of "acquisition" to allow users to "buy" content from the sites. This could be (ab)used to support marking items as read, maybe?

@nicosomb nicosomb modified the milestone: 2.1.0 Apr 12, 2016
@anarcat
Copy link

anarcat commented Apr 18, 2016

@tcitworld any suggestions on where to look in the v2 code tree if I'd like to start working on that? is anyone taking this on?

thanks!

@tcitworld
Copy link
Member

Sorry for the delay.

I'm thinking on how we can deal with authentication. Since e-readers can't handle it most of the time, the OPDS server should be on a specific url containing a token, kinda like RSS feeds. You'll need a new controller route and an xml template.

@gaalcaras
Copy link

This would be a very neat feature indeed! Currently I have to run a cronjob to export all unread articles into one epub and then export the file to a cops server. It works, but this is not optimal, as there are many articles I don't want to read on my Kobo (like saved videos, obviously). I would be fine with only one navigation feed (or "facet") listing all articles sorted by last added timestamp.

About authentication: koreader and Moon Reader on Android both support authentication for the OPDS feed in cops. I think cops uses very basic HTTP auth with PHP to do this, and it works.

@anarcat
Copy link

anarcat commented Jan 31, 2017

for the record, i ended up just writing a Wallabag client for the Kobo, called wallabako which relies on the API instead of relying on this. the main problem is the default Kobo install doesn't support OPDS in the first place, which made this harder to deploy...

now wallabako just downloads actual EPUBs from wallabag and dumps them in the filesystem. dirty, but it works! :)

@Rurik19
Copy link
Contributor

Rurik19 commented Feb 1, 2017

I have a rooted Kindle with coolreader, so OPDS would be just great option!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants