enhancement: Scrobble to goodreads #158

Closed
opened 2026-04-24 22:59:39 +02:00 by adam · 22 comments
Owner

Originally created by @itschrisonline on GitHub (Jan 2, 2022).

This may be impossible with the way goodreads is at the moment (no api) nut it would be good to be able to scrobble progress to there

Originally created by @itschrisonline on GitHub (Jan 2, 2022). This may be impossible with the way goodreads is at the moment (no api) nut it would be good to be able to scrobble progress to there
adam added the possible plugin label 2026-04-24 22:59:39 +02:00
adam closed this issue 2026-04-24 22:59:40 +02:00
Author
Owner

@advplyr commented on GitHub (Jan 2, 2022):

I'm not sure I understand what you mean. Are you recommending having some audiobook discovery feature? Where you can discover audiobooks similar to the ones you have been listening to?

@advplyr commented on GitHub (Jan 2, 2022): I'm not sure I understand what you mean. Are you recommending having some audiobook discovery feature? Where you can discover audiobooks similar to the ones you have been listening to?
Author
Owner

@itschrisonline commented on GitHub (Jan 2, 2022):

Good reads allows you to set the progress of a book you are reading. You used to be able to go it via the API but they have shut that down. Would like to be able to audiobookshelf to sync progress to Goodreads

same with openlibrary

@itschrisonline commented on GitHub (Jan 2, 2022): Good reads allows you to set the progress of a book you are reading. You used to be able to go it via the API but they have shut that down. Would like to be able to audiobookshelf to sync progress to Goodreads same with openlibrary
Author
Owner

@itschrisonline commented on GitHub (Jan 2, 2022):

this is what I have been playing around with it tonight in bash
need to get cookies

  • ccsid
  • u
  • p
  • _session_id2
    and a authenticity_token
    I got this by check out the XHR in chrome so i don't know if it makes sense.

[https://pastebin.com/H6erU5Yz](bash code)

@itschrisonline commented on GitHub (Jan 2, 2022): this is what I have been playing around with it tonight in bash need to get cookies - ccsid - u - p - _session_id2 and a authenticity_token I got this by check out the XHR in chrome so i don't know if it makes sense. [https://pastebin.com/H6erU5Yz](bash code)
Author
Owner

@itschrisonline commented on GitHub (Jan 2, 2022):

You need to put the book in "currently-reading" shelf before updating the progress

and You don't have to set percentage to finish book you only have to move it to the "read" shelf

@itschrisonline commented on GitHub (Jan 2, 2022): You need to put the book in "currently-reading" shelf before updating the progress and You don't have to set percentage to finish book you only have to move it to the "read" shelf
Author
Owner

@itschrisonline commented on GitHub (Jan 2, 2022):

You can get goodreads id from isbn using the redirect from

https://www.goodreads.com/book/isbn/ISBN
https://www.goodreads.com/book/isbn/9781946008084 = https://www.goodreads.com/book/show/58951931
id=58951931

sorry for all the comments

@itschrisonline commented on GitHub (Jan 2, 2022): You can get goodreads id from isbn using the redirect from https://www.goodreads.com/book/isbn/ISBN https://www.goodreads.com/book/isbn/9781946008084 = https://www.goodreads.com/book/show/58951931 id=58951931 sorry for all the comments
Author
Owner

@advplyr commented on GitHub (Jan 3, 2022):

This sounds like it could be a good plugin. I'd like to setup a system to allow installing plugins.
Maybe this can be the first

@advplyr commented on GitHub (Jan 3, 2022): This sounds like it could be a good plugin. I'd like to setup a system to allow installing plugins. Maybe this can be the first
Author
Owner

@DDriggs00 commented on GitHub (Apr 25, 2022):

The way that the kindle does it works fairly well, although that's presumably done using an exclusive API.

@DDriggs00 commented on GitHub (Apr 25, 2022): The way that the kindle does it works fairly well, although that's presumably done using an exclusive API.
Author
Owner

@zombiehoffa commented on GitHub (May 17, 2022):

would you guys consider scrobbling (and ideally sharing library/finished books) to Jelu instead? https://github.com/bayang/jelu

It has a rest api so should be pretty easy. If I can get you guys and kavita to play nice with jelu I will have a nice, private, semi automated ecosystem to track my library and read books/audiobooks to, which would be awesome. That project is under active development and may support recommendations at some point as well, cutting the need for goodreads right out of the stack.

@zombiehoffa commented on GitHub (May 17, 2022): would you guys consider scrobbling (and ideally sharing library/finished books) to Jelu instead? https://github.com/bayang/jelu It has a rest api so should be pretty easy. If I can get you guys and kavita to play nice with jelu I will have a nice, private, semi automated ecosystem to track my library and read books/audiobooks to, which would be awesome. That project is under active development and may support recommendations at some point as well, cutting the need for goodreads right out of the stack.
Author
Owner

@itschrisonline commented on GitHub (May 21, 2022):

The way that the kindle does it works fairly well, although that's presumably done using an exclusive API.

Probably as they are both amazon

@itschrisonline commented on GitHub (May 21, 2022): > The way that the kindle does it works fairly well, although that's presumably done using an exclusive API. Probably as they are both amazon
Author
Owner

@itschrisonline commented on GitHub (May 21, 2022):

would you guys consider scrobbling (and ideally sharing library/finished books) to Jelu instead? https://github.com/bayang/jelu

It has a rest api so should be pretty easy. If I can get you guys and kavita to play nice with jelu I will have a nice, private, semi automated ecosystem to track my library and read books/audiobooks to, which would be awesome. That project is under active development and may support recommendations at some point as well, cutting the need for goodreads right out of the stack.

I defiantly would like to see this just for my own personal tracking. would be a bonus if it could if it could also sync to good read as I already have an established account with friends on there. Could be hard to get them to change

@itschrisonline commented on GitHub (May 21, 2022): > would you guys consider scrobbling (and ideally sharing library/finished books) to Jelu instead? https://github.com/bayang/jelu > > It has a rest api so should be pretty easy. If I can get you guys and kavita to play nice with jelu I will have a nice, private, semi automated ecosystem to track my library and read books/audiobooks to, which would be awesome. That project is under active development and may support recommendations at some point as well, cutting the need for goodreads right out of the stack. I defiantly would like to see this just for my own personal tracking. would be a bonus if it could if it could also sync to good read as I already have an established account with friends on there. Could be hard to get them to change
Author
Owner

@DDriggs00 commented on GitHub (May 21, 2022):

Since goodreads is a social network (ish), I believe that replacing it with something local would defeat the purpose of this request, which is sharing reading progress with friends/etc.

@DDriggs00 commented on GitHub (May 21, 2022): Since goodreads is a social network (ish), I believe that replacing it with something local would defeat the purpose of this request, which is sharing reading progress with friends/etc.
Author
Owner

@itschrisonline commented on GitHub (May 21, 2022):

Agreed but due to the good reads API shutting down Ill take what I can get so I don't lose track,

I gave up. Need to do a web auth save the cookies that you can only get doing a certain action and would have to keep using the token every x hours or you would need to renew the cookie

@itschrisonline commented on GitHub (May 21, 2022): Agreed but due to the good reads API shutting down Ill take what I can get so I don't lose track, I gave up. Need to do a web auth save the cookies that you can only get doing a certain action and would have to keep using the token every x hours or you would need to renew the cookie
Author
Owner

@zombiehoffa commented on GitHub (May 21, 2022):

Since goodreads is a social network (ish), I believe that replacing it with something local would defeat the purpose of this request, which is sharing reading progress with friends/etc.

I personally only ever use good reads and now jelu to track all the books I have read and/or possess across various formats (audio, eBook, paperback) perhaps I should Allende my request to ask for jelu in addition to rather than instead of goodreads.

@zombiehoffa commented on GitHub (May 21, 2022): > Since goodreads is a social network (ish), I believe that replacing it with something local would defeat the purpose of this request, which is sharing reading progress with friends/etc. I personally only ever use good reads and now jelu to track all the books I have read and/or possess across various formats (audio, eBook, paperback) perhaps I should Allende my request to ask for jelu in addition to rather than instead of goodreads.
Author
Owner

@advplyr commented on GitHub (May 21, 2022):

Yeah as of now I haven't seen a way to do anything with Goodreads since they no longer have a public API.

I looked at Jelu and it isn't clear to me how that would work.

@advplyr commented on GitHub (May 21, 2022): Yeah as of now I haven't seen a way to do anything with Goodreads since they no longer have a public API. I looked at Jelu and it isn't clear to me how that would work.
Author
Owner

@itschrisonline commented on GitHub (May 21, 2022):

How I wrote the bash good read script was to
Add book to self using author title search and to see which audio format it was.
then send percentage

This you would probably have to add by isbn?

@itschrisonline commented on GitHub (May 21, 2022): How I wrote the bash good read script was to Add book to self using author title search and to see which audio format it was. then send percentage This you would probably have to add by isbn?
Author
Owner

@advplyr commented on GitHub (May 22, 2022):

We have no way to authenticate the user on Goodreads

@advplyr commented on GitHub (May 22, 2022): We have no way to authenticate the user on Goodreads
Author
Owner

@zombiehoffa commented on GitHub (May 22, 2022):

Yeah as of now I haven't seen a way to do anything with Goodreads since they no longer have a public API.

I looked at Jelu and it isn't clear to me how that would work.
They have an api. To add the books in the library you would use the api to match the library books against author/title/isbn in jelu, add what isn't there to the library then mark books read as they are read, also via the api.

@zombiehoffa commented on GitHub (May 22, 2022): > Yeah as of now I haven't seen a way to do anything with Goodreads since they no longer have a public API. > > I looked at Jelu and it isn't clear to me how that would work. They have an api. To add the books in the library you would use the api to match the library books against author/title/isbn in jelu, add what isn't there to the library then mark books read as they are read, also via the api.
Author
Owner

@bayang commented on GitHub (May 22, 2022):

Hi all, I'm the Jelu dev.

Jelu exposes a REST API, there is a swagger endpoint available on swagger-ui.html describing all the operations.

I'm sorry but I don't have the resources at the moment to spin a public demo instance of Jelu which could also serve as public swagger docmentation.

But I guess your flow in audiobookshelf would be something like that :

  • call GET books endpoint providing title, authors, isbn etc...
  • if book exists in jelu db and is not yet in user books : add it to user books
  • if book doesn't exist : add it to jelu db and user books
  • From there you can already change the book status to currently_reading if you want
  • now that book exists and is in user books lists you have 2 possibilities to track progress :
  • wait for the book to be completed and change its status to completed
  • or if you have the progress as a percentage Jelu exposes a percentRead field that you can update while the reading is progressing

PS: sorry for the wall of text.
If you want a less formal chat I'm present in your discord already since I'm at the same time testing audiobookshelf usage to replace my current setup.

@bayang commented on GitHub (May 22, 2022): Hi all, I'm the Jelu dev. Jelu exposes a REST API, there is a swagger endpoint available on `swagger-ui.html` describing all the operations. I'm sorry but I don't have the resources at the moment to spin a public demo instance of Jelu which could also serve as public swagger docmentation. But I guess your flow in audiobookshelf would be something like that : * call GET books endpoint providing title, authors, isbn etc... * if book exists in jelu db and is not yet in user books : add it to user books * if book doesn't exist : add it to jelu db and user books * From there you can already change the book status to currently_reading if you want * now that book exists and is in user books lists you have 2 possibilities to track progress : * wait for the book to be completed and change its status to completed * or if you have the progress as a percentage Jelu exposes a percentRead field that you can update while the reading is progressing PS: sorry for the wall of text. If you want a less formal chat I'm present in your discord already since I'm at the same time testing audiobookshelf usage to replace my current setup.
Author
Owner

@advplyr commented on GitHub (Jun 19, 2022):

I'm going to close out these Goodreads requests because as mentioned here they are no longer giving out API keys. Any Goodreads functionality would not be part of the core codebase of abs unless they re-open their public API.

Jelu could be supported in the future although what might be better is implementing a webhook system so other software could sync with abs. That can be a separate request.

A plugin system seems a long ways away but we are working on API docs so much of this could be built as separate scripts utilizing the abs API.

@advplyr commented on GitHub (Jun 19, 2022): I'm going to close out these Goodreads requests because as mentioned here they are no longer giving out API keys. Any Goodreads functionality would not be part of the core codebase of abs unless they re-open their public API. Jelu could be supported in the future although what might be better is implementing a webhook system so other software could sync with abs. That can be a separate request. A plugin system seems a long ways away but we are working on API docs so much of this could be built as separate scripts utilizing the abs API.
Author
Owner

@benonymity commented on GitHub (Mar 26, 2023):

This now seems doable since the Goodreads OAuth authentication has been figured out here: https://github.com/laxamentumtech/audnexus/issues/248#issuecomment-1144251390

Though maybe something for an ABS plugin since it's a bit hacky to go the private API route. Would be really awesome to scrobble to Goodreads!

@benonymity commented on GitHub (Mar 26, 2023): This now seems doable since the Goodreads OAuth authentication has been figured out here: https://github.com/laxamentumtech/audnexus/issues/248#issuecomment-1144251390 Though maybe something for an ABS plugin since it's a bit hacky to go the private API route. Would be really awesome to scrobble to Goodreads!
Author
Owner

@BenjaminMichaelis commented on GitHub (Feb 27, 2025):

I'm going to close out these Goodreads requests because as mentioned here they are no longer giving out API keys. Any Goodreads functionality would not be part of the core codebase of abs unless they re-open their public API.

Jelu could be supported in the future although what might be better is implementing a webhook system so other software could sync with abs. That can be a separate request.

A plugin system seems a long ways away but we are working on API docs so much of this could be built as separate scripts utilizing the abs API.

Maybe hardcover.app is a good alternative in terms of setting up an API with? I know other apps like Calibre-Web-Automated are implementing support.

Hardcover app api docs: https://hardcover.app/account/api

@BenjaminMichaelis commented on GitHub (Feb 27, 2025): > I'm going to close out these Goodreads requests because as mentioned here they are no longer giving out API keys. Any Goodreads functionality would not be part of the core codebase of abs unless they re-open their public API. > > Jelu could be supported in the future although what might be better is implementing a webhook system so other software could sync with abs. That can be a separate request. > > A plugin system seems a long ways away but we are working on API docs so much of this could be built as separate scripts utilizing the abs API. Maybe [hardcover.app](https://hardcover.app?referrer_id=29927) is a good alternative in terms of setting up an API with? I know other apps like [Calibre-Web-Automated](https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file#additional-metadata-providers-%EF%B8%8F) are implementing support. Hardcover app api docs: https://hardcover.app/account/api
Author
Owner

@jwillikers commented on GitHub (Oct 14, 2025):

It's probably worth mentioning ListenBrainz too

@jwillikers commented on GitHub (Oct 14, 2025): It's probably worth mentioning [ListenBrainz](https://listenbrainz.org/) too
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#158