Closed oderyn closed 1 week ago
So if I'm understanding this correctly, you're wanting to add calibre as a provider, correct?
Correct. I've curated the metadata in my Calibre library, but it falls short as a media tracker. It is really a data management tool whereas RYOT seems more about tracking books that I want to read, am reading, and have read.
I won't be adding calibre as a provider.
But adding it as an import (for books you've already completed) and integration (for books that are currently in progress) option does make sense. What do you think?
Getting any kind of Calibre integration would be great.
I had envisioned using the Caliber integration as a way to tell RYOT what books I already own so that I could better organize them into collections, making it easier to browse through my library to determine what I wanted to read next -- which is why I thought Calibre being a provider made some sense.
Regardless, I imagine that I could make the integration or import work for my use case.
I appreciate everything you're doing here. This is, by far, the best of these types of apps out there.
Adding Calibre as a provider would require me to think up as implementation of custom providers and I do not really want to implement that since I would not be using that feature myself. Adding importers/integrations is easy since I have already done it.
Thanks for the kind words, I would appreciate a donation too 😝.
Happy to. :)
Hi, I have decided not to go forward with this integration since there is not much user demand for it.
I am open to other suggestions you may have!
Calibre does a great job of maintaining my library. RYOT does a great job of tracking the books that I want to read. Since I already use Calibre to maintain my metadata, it would be great if RYOT could just use it as a metadata source.
Calibre has an API that should make this relatively straightforward. (Famous last words, I know.)
First step is the user must have the Calibre content server enabled. There are instructions here: https://manual.calibre-ebook.com/server.html
Once that is enabled, we would need to create the integration between RYOT and Calibre. For a great reference design, see Readarr's integration here:
Like Readarr, it would be great to be able to integrate multiple Calibre libraries. For more details on Readarr's Calibre integration see: https://wiki.servarr.com/en/readarr/settings#root-folders
(Note: Ignore the stuff about the Root Folders. That is strictly a Readarr setting.)
Integrating Calibre into RYOT could look something like this:
And then you would use it like so:
AFAICT, the API would work something like this:
Query the Calibre content server using this format: /ajax/search/{LIBRARY}/?num=100&offset=0&sort=title&sort_order=asc&query={QUERY}&vl=
EXAMPLE: http://localhost/ajax/search/fiction/?num=100&offset=0&sort=title&sort_order=asc&query=percy&vl=
Which will return json that looks like this:
This will return a list of book IDs that you can use to get information about individual books: /ajax/book/{BOOKID}/{LIBRARY}
EXAMPLE: http://localhost/ajax/book/1091/fiction
Which returns json that looks like this:
Note: I edited the JSON to remove any thing that might be a personal identifier. If there are errors in the JSON, it is likely due to my edits.
And, lastly, you can also retrieve book covers from Calibre as well: /get/cover/{BOOKID}/{LIBRARY}
EXAMPLE: http://localhost/get/cover/1091/fiction
Which returns a cover graphic.
Unfortunately, Calibre does not have full API documentation, but you can see all of the available endpoints here: https://github.com/kovidgoyal/calibre/blob/master/src/calibre/srv/ajax.py
And the code is actually decently commented.
Happy to help test this.