Cache played files

Is it possible to cache files when played once?
I don’t want to pre-select files to cache, but I’d like files to cache when played once instead.

Would this be possible to integrate? I would like to switch from DSub/Airsonic to this app with Jellyfin. DSub supports this feature and is the only thing with holding me from changing.

I’ll more context about this.

What do you mean by played, like 100% played and it’s downloaded after, it’s downloaded before, during ? Any automatic uncache?
It’s easy to forget about such option and fill your phone with data.

How DSub works from what I know by just using it;

  • you specify a cache max size. If it’s over this limit, it will delete the oldest cached files to make room.
  • If you click it to play, it will start streaming when it’s not cached. If you stop this before it ends, it will download/stream the rest in order to cache.
    A threshold / grace period of a couple seconds into the stream for not caching the file, might be ideal for accidental playback (this is not part of DSub afaik).

Downloading before playback would incur quite some latency, and I would not prefer this myself.
The most ideal situation from my point of view;

  • It will start to stream/playback, and write this stream to the specified cache location .
  • When it’s stopped before the grace period, the stream written to disk will be automatically deleted.
  • When it’s stopped after the grace period, the stream will continue in the background so it will be written to disk completly.
  • When it’s stopped at the end the whole file is already written to disk.

I love this app, it’s very powerfull and I’ve already bought a license!
If you can find time to implement something to this extend I would be very grateful, but I also know that I might be asking a lot, and therefore do understand if this is either low priority, not feasible etc.

The thing is that download and playback are 100% unrelated in Symfonium. So offline cache is not a playback cache but really a wanted offline copy of the media.

This leads to the main issue, there’s no notion of cache max size and eviction since it’s built around the concept that the user have control and do not want random thing to be deleted.
Adding a cache size only for automated offline cache from this option but not impacting the manual wanted offline caching of media from the users is would be insanely complicated to maintain. And clearing what the user on purpose cached to cache the currently playing media that he’ll probably won’t need is an horrible alternative.

So the end result is that while I can add an option to auto cache, adding an auto prune / max cache size option is not really wanted. And so this would make this option less useful and so does it worth to be added? I personally don’t think so.
You can auto offline cache a playlist for example and just add songs to the playlist so they are auto cached.
You can also already build a smart playlist that contains songs that have a playcount > 1 and a last played < 1 week and auto cache it. It will mostly do what you want without the cleaning.


Found this thread looking for an automatic way to keep most recently played songs cached.
As suggested I made a smart playlist filtered by played within 1 day (sadly 0.25 didn’t work) and songs are being added fine…
The only problem is that, because the already streamed file is being discarded and redownloaded immediately after playback, it sometimes interferes with buffering for playback.
(mostly when skipping and for tracks longer than 15 min because they take a while)

Is there any way to prioritize buffering over offline-downloading?

Not really no you can try to enable the slower download In advanced settings.

1 Like