SubMusic
SubMusic copied to clipboard
Jellyfin support?
Jellyfin support would be very cool as it basically replaces the paid plex.
Thanks for your feedback and suggestion! There have been more requests to implement Jellyfin support, so I thought it would be useful to start documenting the required information. If you have a server available to test and find out how to obtain the below information from the API, please feel free to share your insights.
- [ ] how to obtain access to the API? Authentication flow, username password, keys.
- [ ] how to obtain the required data? Below you can find the current features that are supported by SubMusic that require communication with the backend server.
provider method | Jellyfin API | description | Content-Type |
---|---|---|---|
ping | / |
returns an object with server version | application/json |
recordPlay | submit a play | application/json | |
getAllPlaylists | returns array of all playlists available for the user | application/json | |
getPlaylist | returns an array of one playlist object with {id} | application/json | |
getPlaylistSongs | returns an array of songs on the playlist with id | application/json | |
getRefId | returns a refId for a song by {id} (this downloads the song) | audio/* | |
getArtwork | returns a BitmapResource for a song id | image/* | |
getAllPodcasts | returns array of all podcasts available for the user | application/json | |
getPodcast | returns an array of one podcast object with {id} | application/json | |
getEpisodes | returns array of episodes for podcast with {id} | application/json |
The Jellyfin API is documented here.
Thanks for your feedback and suggestion! There have been more requests to implement Jellyfin support, so I thought it would be useful to start documenting the required information. If you have a server available to test and find out how to obtain the below information from the API, please feel free to share your insights.
- [ ] how to obtain access to the API? Authentication flow, username password, keys.
- [ ] how to obtain the required data? Below you can find the current features that are supported by SubMusic that require communication with the backend server.
provider method Jellyfin API description Content-Type ping
/
returns an object with server version application/json
https://api.jellyfin.org/#tag/System/operation/GetSystemInfo Resp: Version
recordPlay submit a play application/json
meaning?
getAllPlaylists returns array of all playlists available for the user application/json
https://api.jellyfin.org/#tag/Items includeItemTypes "Playlist"
getPlaylist returns an array of one playlist object with {id} application/json
What's taking in input?
getPlaylistSongs returns an array of songs on the playlist with id application/json
https://api.jellyfin.org/#tag/Playlists/operation/GetPlaylistItems
getRefId returns a refId for a song by {id} (this downloads the song) audio/*
https://api.jellyfin.org/#tag/Library/operation/GetDownload ?
getArtwork returns a BitmapResource for a song id image/*
https://api.jellyfin.org/#tag/Image/operation/GetItemImage
getAllPodcasts returns array of all podcasts available for the user application/json
https://api.jellyfin.org/#tag/Items includeItemTypes "Series" => some kind of? I'm not sure here
getPodcast returns an array of one podcast object with {id} application/json
https://api.jellyfin.org/#tag/Items ids
getEpisodes returns array of episodes for podcast with {id} application/json
https://api.jellyfin.org/#tag/TvShows/operation/GetEpisodes
The Jellyfin API is documented here.
trying
thank you, this would be great as Jellyfin has everything you need for free and it's really opensource.
Thanks for your help! I see that the Items endpoint is the one to use for discovering the playlists, couldn't find it before.
Found the authentication method here: /Users/AuthenticateByName
. Username and password are sent in plain text, response contains the AuthToken key. This token can be used in Authorization header as described here.
The recordPlay function submits a timestamp + song id to record that the song has been played. This is typically used for statistics on the server side. Still unclear which endpoint could achieve it.
I've been searching for podcast support. Unfortunately, it looks like Jellyfin does not support it yet, see more details here. For SubMusic, this is not a problem at all, as the Plex backend also lacks podcast support. For normal playlists you can still enable podcast mode if needed.