advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
5.74k stars 395 forks source link

[Enhancement]: Use Storytel as a metadata-source #1283

Open ScuttleSE opened 1 year ago

ScuttleSE commented 1 year ago

Describe the feature/enhancement

I don't know if this is too niche, but it would be nice to have Storytel.com available as a metadata source. The site focuses mainly on non-english audiobooks though.

I wrote a "Tag Source" thing for mp3tag for it, and storytel has a really accessible API that allows for searches and gies you the result as json, so the implementation shouldn't be too hard.

https://www.storytel.com/api/search.action?q=L%C3%A5t%20den%20r%C3%A4tte%20komma%20in

That URL will query the database, using q as an input paramter (url-encoded), it will return a json blob.

From the results, you then get [books][n][abook][id] to get details, including URL for cover.

advplyr commented 1 year ago

Do you have the API docs for this?

ScuttleSE commented 1 year ago

No, the mp3tag Tag Source was written "blindly", with some trial and error.

advplyr commented 1 year ago

Hmm.. I don't see any reference that this is a public API. I'm hesitant on implementing something that will start blocking IPs or throttling or can just change without notice.

advplyr commented 1 year ago

Can re-open this if we have a public API

tkozybski commented 1 year ago

Hmm.. I don't see any reference that this is a public API. I'm hesitant on implementing something that will start blocking IPs or throttling or can just change without notice.

@advplyr The API is as public as Audible, as there's no public documentation (AFAIK it's mined from a client). Every time you type a character in the search bar, it sends a new request, so I wouldn't be too worried about rate-limiting. Storytel would make a great metadata source, as it has many languages available.

InjectingZeunerts commented 1 year ago

@advplyr - I am also very interested in getting Storytel as an metadata source. Current options (google/audible) lacks quite a lot of swedish audiobooks.

Storytel seems to be active in 23 different countries (some go under different names, like Mofibo in Denmark).

advplyr commented 1 year ago

Audible is technically not public but has been stable for a while and someone put up docs for it.

I'm open to trying this out if someone wants to add a Storytel provider. It would be nice to have a spec. Can we use different regions?

Revisor01 commented 8 months ago

Looking at the api i found that we can use regions with:

request_locale=de,en,se,etc

https://www.storytel.com/api/search.action?request_locale=de&q=%s

as word seperator use +

ScuttleSE commented 8 months ago

I can't code javascript, but I can probably write a API "definition" of some kind...what parameters are needed?

mcfrojd commented 3 months ago

Is this something that is going to be able to solve now with the new "custom metadata source" feature that was introduced in the latest version? I would love if this worked in abs to eliminate the step to use mp3tag and the storytel tag source there.

nichwall commented 3 months ago

Yes, this could be solved by adding a custom metadata source. https://www.audiobookshelf.org/guides/custom-metadata-providers

The custom provider can be in any language, it just needs to provide the following API to ABS (https://github.com/advplyr/audiobookshelf/blob/master/custom-metadata-provider-specification.yaml)