jellyfin / jellyfin-android

Android Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
1.55k stars 252 forks source link

Music preloading/caching/downloading / Offline mode #139

Open Norde opened 4 years ago

Norde commented 4 years ago

Describe the feature you'd like Would it be possible to add the capacity of preload next items in current playlist (at least for music)? The number of preloaded items would be configurable by the user (e.g: 1 to 50 next item for example).

It would be really useful during car travel were mobile network can be quite capricious (or nonexistent), the preloading would thus "mask" or at least minimize the problem.

Maxr1998 commented 4 years ago

Not for the web-based client. It is however planned to implement downloads/caching support in the prospective fully native client.

Norde commented 4 years ago

Is this due to a limitation with web application ?

Maxr1998 commented 4 years ago

Is this due to a limitation with web application ?

Yep, pretty much.

Morgan-6Freedom commented 3 years ago

@Maxr1998 do you know where we can find informations about the prospective fully native client ? your message is the only thing I found about it, nothing on the official website.

nielsvanvelzen commented 3 years ago

This repository is the native app.

Morgan-6Freedom commented 3 years ago

About the caching capability, is it done or is it still in the backlog? About the download capability : what is the procedure to download music within the app? Do we are able to listen to offline album/musics with this capability ?

IRHM commented 3 years ago

Has any progress been made with this? Being able to play downloaded media in the app when offline would be great.

nielsvanvelzen commented 3 years ago

No

Morgan-6Freedom commented 2 years ago

Hello. Is this feature planned in an upcoming release ?

nielsvanvelzen commented 2 years ago

No

Maxr1998 commented 2 years ago

Offline support for some parts of the app is planned, but I personally don't have the time and resources to work on it in the foreseeable future, and there's a lot of groundwork that'd have to be done first. Thus, it's not planned for an upcoming release and I can't comment on when it'll come.

matthewarmand commented 2 years ago

Is there any documentation of a technical design or the groundwork that would need to be accomplished for this? I'm very interested in this feature and would consider contributing some help here, though I wouldn't move quickly as it's been a long time since I touched any Android development

nielsvanvelzen commented 2 years ago

Is there any documentation of a technical design or the groundwork that would need to be accomplished for this? I'm very interested in this feature and would consider contributing some help here, though I wouldn't move quickly as it's been a long time since I touched any Android development

We're loading the webui from the server, so without a connection we can't even load the user interface right now. So the first change would be to make the app fully native or somehow cache the complete webui. Next would be to cache all data from the server locally to support offline browsing, and then we need to download media (and pre-transcode it depending on device capabilities) to support offline playback.

It's a huge task to implement all of that.

matthewarmand commented 2 years ago

Ah, that makes a lot of sense, thanks. I think I saw you (or someone?) say elsewhere that the compose branch is the beginning of the full native rewrite? I'll keep an eye there and see if there's any way I can be useful

nielsvanvelzen commented 2 years ago

The compose branch is outdated. We've already merged compose support to the master branch, although for the server selection screen only at this moment.

Norde commented 2 years ago

I suggest you the excellent native client Gelli, it has support for preloading / caching and downloading. Compared to the web client it lacks the ability to connect to a DLNA server.

(off-topic question: does the Jellyfin team support this Gelli project in any way?)

nielsvanvelzen commented 2 years ago

Gelli is made by a Jellyfin team member so it's semi-official. And while it's a great client (I use it myself) that doesn't mean we should ignore this feature for the official app.

Norde commented 2 years ago

Totally agree. I was just wondering why the Gelli application is not incorporated as an official (music oriented) client.

BloodyIron commented 1 year ago

I have to say putting Gelli and Finamp side by side and I like Finamp more. Finamp downloads faster, I can actually tell what is downloaded, and it has a pretty good interface. Gelli is good too, but for managing downloads for Music it falls on its face (even though it DOES work).

Github : https://github.com/jmshrv/finamp Google Play : https://play.google.com/store/apps/details?id=com.unicornsonlsd.finamp&hl=en&gl=US

I'm still testing it further, but so far I quite like it. And auto-downloading matters to me for things like listening to music while driving, where cell tower hopping leads to periods of no-internet, etc. Which is why subsonic (using dsub) was rather important for me in the past (but I'm testing my feet in the pool that is Jellyfin).