Description
Hey, I actually had ambitions of building this out myself but after an afternoon of trying and failing to get the garmin connect simulator functioning correctly on my linux machine... i give up. Hopefully just leaving this issue inspires someone else
Audiobookshelf github: https://github.com/advplyr/audiobookshelf is an audiobook/podcast focused server you can use to manage your audiobooks/podcasts. It's pretty good and getting better as it goes, having support in SubMusic for it as a backend would be fantastic. It's got the basic features (with some quirks)
They don't have a programmatically described API but it seems fairly stable and they have good documentation at least, functionally you need to login
and then you can get playlists
from there you can typically drill down into the podcast/audiobook chapters/episodes and get the files from them for downloading
so the quirks...
1, figuring out if a file has already been played is a bit weird, you can either call the progress api for every single library item which is not great for large playlists, or call the authorize API, which is what the webUI does. It contains a User object which contains the mediaProgress of every single piece of audio the signed in user has listened to, which can be manually cross referenced with library items
2, syncing media progress back to the server is a little weird, they want to you do create a local listening session, but I've not been able to figure out how. I think the mobile webapp does that, then you can sync the local listening session. The alternative is manually updating media progress which seems probably simpler