The Jellyfin desktop client that plays through your real mpv.
Not libmpv baked into an app — your actual external mpv process, with SVP4 motion
interpolation, SDR-to-HDR, custom shaders, and your full mpv.conf. Browse in Jellyfin
Web, hit play, and mpv takes over while watched state and resume points sync straight back to your server.
Every other Jellyfin desktop app plays video inside itself with libmpv. That's convenient, but it quietly caps what mpv can do — the features power users actually chase, like SVP 4 frame interpolation and SDR-to-HDR tone mapping, are exactly the ones that don't survive being embedded.
MediaFlick Desktop takes the opposite approach. It shows you Jellyfin Web in a native window, but when you press play it hands the stream to the external mpv you already configured. Original-quality direct playback remains the default, with optional automatic or bitrate-limited Jellyfin transcoding for slower connections. Your mpv.conf, your scripts, your shaders, your SVP4 pipeline, your HDR profiles, your input bindings — all of it applies, because it's the real mpv, not a stripped-down copy.
The catch with playing outside the browser is usually that Jellyfin loses track of what you watched. MediaFlick solves that: while mpv plays, it reports playback start, progress, watched state, and resume position back to your server, so your library stays correct across every device.
- Real external mpv playback — original or server-transcoded streams handed to your own
mpvprocess, so your entire setup applies:mpv.conf, scripts, shaders, profiles, SVP4, custom HDR, input bindings. - Selectable streaming quality — keep original quality, use Jellyfin's automatic connection limit, or cap playback from 1.5 to 120 Mbps with server-transcoding fallback.
- Playstate synced to Jellyfin — playback start, progress, watched state, and resume positions report back to your server.
- Media-segment skipping — skip intros, credits, recaps, and commercials, with per-type prompt or auto-skip (countdown) settings.
- Skip markers on the seek bar — the mpv timeline shows exactly where segments are skipped, merged with the file's own chapters.
- Jellyfin Web in a native window — rendered in a CEF shell, with infinite scroll on the poster grid instead of pagination.
- One-click mpv download on Windows — no manual setup; Linux and macOS auto-detect a system
mpv. - Optional MPC-HC backend on Windows — switchable live from Client Settings (mpv stays the default).
- Automatic in-app updates from GitHub Releases (Windows).
- Cross-platform — Windows, Linux, and macOS.
Windows — download the latest MediaFlickDesktop-Setup-<version>.exe from Releases and run it. Don't have mpv yet? There's a one-click Download mpv in the app.
Linux / macOS — grab the release archive and run mediaflick-desktop. mpv isn't bundled; a system mpv is auto-detected.
See BUILDING.md.
This is a personal project I built to scratch my own itch. The Rust and JavaScript that make up the app are written and reviewed by hand; AI tooling helped with the cross-platform Linux/macOS builds, the GitHub Actions release automation, and code review. Mentioning it because I'd rather be upfront than have you wonder.