r/emby • u/florinp93 • 1h ago
Zerk Play 2 (beta): an Emby / Jellyfin client for Windows and Android TV, built around discovery and Jellyseerr / Overseerr requests
Hi all,
I've been building Zerk Play, a client for Emby (and now Jellyfin) that runs on Windows and Android TV / Google TV.
Zerk Play 2 is a full rewrite, and this is the first build I'm sharing publicly. It's a beta, so expect some rough edges, and please tell me about anything that breaks.
The goal was simple: when I open the app, I want to find something to watch, not scroll through a library grid. If the thing I want isn't on the server yet, I want to request it from the same screen instead of switching to another app.
📷
Processing img lsg4li92j1yh1...
Discovery first
Home is built from your watch history, not just "Latest added":
- Because you watched… suggestions based on what you actually finished
- What are you in the mood for? theme rows like Coming of age, Against all odds, Whodunits and Heists & cons, each showing how many titles you already have
- Picked for you, plus rows built from your taste (Because you like Action · Comedy)
- Top 10 trending, with a big-number row like the streaming services have
📷 Because you watched · Mood rows
Processing img 774rgd35j1yh1...
Processing img yy8pbxt7j1yh1...
Every title has tags from TMDB keywords (Heist, Hitman, Based on a true story…). Open a tag to see everything that matches, starting with what's already in your library. Each details page also has More like this, and trailers play in the background while you read.
Processing img uh5gf9t9j1yh1...
There's also a Discover tab (trending, popular, coming soon), a Calendar of upcoming releases, and Collections built from TMDB, even if your server doesn't group them.
📷 Discover
Processing img jperefxbj1yh1...
Requests built in (Jellyseerr / Overseerr)
Connect Jellyseerr or Overseerr, and titles you don't have show up right next to the ones you do:
- A Request badge on anything not in your library, in every row: Home, Discover, search, More like this
- One Request page: pick the seasons, watch the trailer, done
- Search shows your library first, then a Not in your library row you can request from
- Requested and Awaiting release badges, so you can see what's on the way
📷 Not in your library · Coming soon
Processing img 9vtpgjnej1yh1...
Processing img tqz1fh7gj1yh1...
Playback
- Windows: mpv (libmpv, gpu-next on D3D11) with real HDR output. It can switch Windows HDR on for HDR videos and back off afterwards. Audio passthrough to your receiver (TrueHD, DTS-HD MA, EAC3…).
- Android TV: a native Media3 player with an FFmpeg audio decoder, plus passthrough settings for your TV, soundbar or receiver.
- Versions: if a movie has several files (1080p, 2160p Dolby Vision…), you can pick one and the app remembers your choice.
- Skip intro, manually or automatically.
- Subtitles: a Smart mode (your language, or forced subtitles for foreign dialogue), size and style options, and a delay setting.
- TMDB metadata in your language (titles, descriptions, logos, artwork) without touching your server's libraries.
📷 Settings
Processing img ofeyfgvhj1yh1...
Live TV
Add your own Xtream Codes IPTV account to get a proper TV guide: channel groups, an EPG timeline and what's on now. Live TV sits next to your movie library in the same app.
Processing img vzh0ue0kj1yh1...
Made for the couch
The whole UI is built for D-pad / remote / keyboard first. That works on Windows too: plug in a gamepad or use the arrow keys, and the mouse cursor hides itself until you move it again. The mouse still works everywhere, with hover and wheel scrolling.
Setting up on a TV is painless: scan a QR code with your phone and fill in the server, TMDB key and Jellyseerr details there instead of typing with a remote.
The app updates itself: when a new release is out, it offers to download and install it.
Getting started
- Download the Windows installer or the Android TV APK.
- On first start, choose Emby or Jellyfin and sign in.
- (Optional) Add a free TMDB API key for metadata in your language, tags and collections.
- (Optional) Add your Jellyseerr / Overseerr / Seerr address and API key for requests.
Good to know
- The *seerr address has to be reachable from the device running Zerk Play. Don't use
localhostunless *seerr runs on that same machine. - The APK isn't on the Play Store: install it with Send Files to TV or adb.
- Tested on Windows 10 and 11, a Chromecast with Google TV, and the Chromecast with Google TV 4K. Other Android TV boxes should work; reports are welcome.
Source code, all screenshots and releases: https://github.com/florinp93/Zerk-Play-2.0
