[owncloud-devel] RFC: OPDS catalog for Owncloud

Frank de Lange owncloud-f at unternet.org
Sat Nov 29 00:20:29 GMT 2014


I made a simple ebook reader app [1] for Owncloud (henceforth to be
abbreviated as 'OC') to allow my daughter - who is encumbered [2] with a
school-provided iPad with strict limits on what can be installed - to
read books from our personal collection.

In the discussion around that app I got some requests for OPDS  [3]
integration, something which I felt to be outside of the scope of an OC
app. I suggested the opposite, implementing OPDS as a read-only external
storage option. A further request came for integrating OC with the
FBReader book network to use it as a storage backend instead of Google
drive. While this might be a viable proposition, the work would have to
be done by the FBReader team (by implementing WebDAV as a storage
backend, possibly with some special support for ETags en FileIDs).

All this got me thinking about a third way to use OC to serve book by
publishing content from a user-defined subtree in the form of an OPDS
catalog. This would enable users of OPDS-compliant book reading devices
to access this content without needing to go through an external program
to download it to their device.

This could be implemented in several ways. The most straight-forward
implementation would require the user to be logged in to OC - this could
be accomplished by re-using the users OC credentials for the OPDS link -
after which OC would basically serve an OPDS feed of the designated root
directory, from which the user could navigate towards the desired

A related option would be to publish (a subset of) shared
files/directories as an OPDS catalog. This would enable external users
to access the content without needing to be logged in.

While the OPDS catalog part is relatively straightforward - it could be
based on the file app, serving atom+xml instead of JSON - there is more
to OPDS than just serving links. A fully fledged OPDS catalog entry
contains a lot of metadata related to the linked publication. OC
currently does not provide much in the way of metadata storage. There
are some apps which claim to fill this void [4], one of which seems to
be dead while the other is not much further along than this RFC.

I assume I'm not the first to come up with this idea. The question is
whether anyone here has made a start with something similar already? Any
suggestions related to the concept or the implementation thereof? Code I
could borrow? Laziness is a virtue, after all...


 [1] http://apps.owncloud.com/content/show.php?content=167127

 [2] Had the school been smart enough to leave the choice to
     individual parents, they'd have saved an awful lot of money
     while she'd have used something more suitable to the task
     at hand. Something with a keyboard, with free software, something
     she could program herself if she wanted to. Something without
     bonds and chains. To learn how to produce, not consume...

 [3] http://opds-spec.org/specs/

 [4] http://apps.owncloud.com/content/show.php?content=151520
   WWWWW      ________________________
  ## o o\    /     Frank de Lange     \
  }#   \|   /                          \
   \ `--| _/     <Hacker for Hire>      \
    `---'  \       +46-734352015        /
            \  owncloud-f at unternet.org /
  [ "Omnis enim res, quae dando non deficit, dum habetur
     et non datur, nondum habetur, quomodo habenda est."  ]

More information about the Devel mailing list