BookPlayer icon indicating copy to clipboard operation
BookPlayer copied to clipboard

Jellyfin audiobook downloads

Open lightswitch05 opened this issue 1 year ago • 4 comments

Feature request

Jellyfin is a self-hosted media server that supports all kinds of media types - including audiobooks. It has as well documented API that can can provide a list of items in a collection, download files, and even get an audio stream.

Narrative

Initial feature: Add a new feature, similar to the existing "Download from URL" feature, called "Download from Jellyfin", that allows you to view a Jellyfin collection and download an audiobook to the device. I love having access to all my Audiobooks, but they take up a ton of device space. Integration with Jellyfin allows me to keep my collection well organized on a server, but still have easy access into this great app. There is some configuration required for this, inputting a Jellyfin URL, selecting a user, and logging in.

Potential feature iteration: Jellyfin support streaming audio. I have no idea if streaming is of any interest to this app. Personally, I'm not interested in streaming, I want things downloaded. However, the potential is there if interested.

Design

Frankly, I'm bad at UX, but I'm happy brainstorm if desired.

lightswitch05 avatar Oct 15 '24 00:10 lightswitch05

I can provide access to a Jellyfin server with some audiobooks on it to explore and consider the feature if that would be useful

lightswitch05 avatar Oct 15 '24 01:10 lightswitch05

I think I'm going to give this a shot. I can't promise anything, but I would love the feature to exist, so I might as well try. I can test with my own server at home for now.

lysanntranvouez avatar Oct 22 '24 21:10 lysanntranvouez

I forgot to comment, but is the Jellyfin connection, something that can be accomplished via the native Files app → 'Connect to Server' option? if you save that connection, then you could access that via BookPlayer since we have an integration to the Files app, and import the books like it was any other third party cloud

GianniCarlo avatar Oct 23 '24 03:10 GianniCarlo

With just "Connect to server" it doesn't work. I don't know what protocols that supports, but I don't think Jellyfin uses anything "standard".

It might be thinkable to add a File Provider extension to some Jellyfin app, which would make content show up like it was in some cloud storage. Chances are, if you're hosting your audiobooks on Jellyfin, you're also hosting other media there, like movies or music, and you likely have an app to access that stuff.

I popped a question into my preferred Jellyfin app's GitHub (Streamyfin), if that seems like a practical idea. Never hurts to ask. I imagine it would be more involved. But it would also be more versatile.

lysanntranvouez avatar Oct 23 '24 18:10 lysanntranvouez

There is a first draft here: https://github.com/TortugaPower/BookPlayer/compare/develop...lysanntranvouez:BookPlayer:feature/jellyfin-download

With varying quality of UX (most notably no download progress indicator), and zero error handling.

If anyone wants to give it a spin.

I should also mention that I'm basically having to learn SwiftUI, so I imagine there are a few blunders in the changes. Feedback would be appreciated.

lysanntranvouez avatar Oct 29 '24 09:10 lysanntranvouez

@lysanntranvouez that is great news! Do you mind opening up a PR pointing to develop so I can leave feedback? I'll check it out later throughout the day

GianniCarlo avatar Oct 29 '24 13:10 GianniCarlo

I forgot to comment, but is the Jellyfin connection, something that can be accomplished via the native Files app → 'Connect to Server' option? if you save that connection, then you could access that via BookPlayer since we have an integration to the Files app, and import the books like it was any other third party cloud

into files.app: i don't think so… not impossible, but not straightforward. opensource, but not a standard protocol, but does provide web access from my understanding.

(if you're going to do this, would plex be too much? infuse.app accesses both jellyfin and plex (and i think emby, too), so i know it's doable.)

blipspings avatar Nov 12 '24 22:11 blipspings

@lightswitch05 I'm nearing a point where I would say "This is fine for a first version". Would you like to have a look at it, so I can get more testing and some feedback from someone who also wants the feature? If yes, here's the PR: https://github.com/TortugaPower/BookPlayer/pull/1208

lysanntranvouez avatar Nov 28 '24 21:11 lysanntranvouez

This is now live in v5.5.0 🎉 , thanks @lysanntranvouez for your hard work on the feature!

GianniCarlo avatar Dec 15 '24 18:12 GianniCarlo

I tried this out today and it works great! 🎉🙌

lightswitch05 avatar Dec 15 '24 18:12 lightswitch05