jellyfin / jellyfin-kodi

Jellyfin Plugin for Kodi
https://jellyfin.org
GNU General Public License v3.0
820 stars 111 forks source link

Add option to download content for offline viewing #46

Open jmshrv opened 5 years ago

jmshrv commented 5 years ago

A feature that would let users "sync" content to their device for offline viewing like in Plex/Emby would be useful, especially on phones.

Here's how Plex handles it: https://support.plex.tv/articles/201082477-quick-guide-to-mobile-sync/

berserkwarwolf commented 4 years ago

Also allow for syncing a whole season/album/playlist.

It's the only thing keeping me from switching to Jellyfin.

wreed4 commented 3 years ago

Any movement in this feature? Would be great for using Jellyfin as my music app in the car.

jmshrv commented 3 years ago

Since opening this issue, I've made a music client that supports downloading. Video support is a long way off and isn't a promised feature, but it would work for people who want offline music.

https://github.com/UnicornsOnLSD/finamp

mcarlton00 commented 3 years ago

I have some thoughts on how it could work, but it's less than straightforward. It's complicated a bit by our database shenanigans here, but also for all the standard reasons:

Plus I think right now if we can't reach the server, the addon gets very unhappy. So we'd need to make allowances for that as well. This is one of the goals when I'm thinking about a full restructure of the database code, but I keep running into limitations of Kodi there so it's been very slow going to get a plan in place.

MayeulC commented 2 years ago

Another use-case would be "downloading for later".

One place where I use jellyfin suddenly had a drop in ADSL speed, and it would be painfully slow to stream, even when transcoding. Starting to download something ahead-of-time would probably help.

Of course, this is only an extra motivation, the points you mentioned still stand!

oddstr13 commented 2 years ago

@MayeulC This is not an argument against supporting offline caching of media in the Kodi addon, but the ADSL situation is the perfect reason to set up a local Jellyfin server in that location. Avoiding streaming over a slow/unreliable internet connection is one of the primary use cases for Jellyfin :smiling_face_with_tear:

MayeulC commented 2 years ago

@oddstr13, that's true, but then I would need two servers, twice the storage, etc. And keep them in sync. Caching of only the most recently accessed could be achieved with ceph or ipfs to some extent, or even some NFS, but there still needs to be a mechanism or heuristics to identify what content should be available locally, and jellyfin (server) doesn't offer that. I don't really want to sync everything over the slow link, that would take more than 2 years at 100KiB/s (overestimate), and the collection is growing :/ Periodic "tape wagon" syncing with a USB device is an option, but it's a bit painful too. That's why selecting a subset of the collection to be made available locally seems like a good compromise to me :)

That's a temporary pain point for me though, as gigabit fiber is being deployed in the area.

Akashi2020 commented 11 months ago

Is there any news about this feature? It could greatly improve the use of Jellyfin compared to Plex.

oddstr13 commented 11 months ago

No news on this front, I would like to remove Python2 support so I can add proper type annotations as a minimum before starting on larger features such as this, preferably also breaking up code into more easily testable chunks, increasing test coverage.


Edit to add that Py2 has now finally been deprecated in this project, so work on adding type annotations and static testing with mypy can now start.