Open source · Android TV · Self-hosted

Live TV from your Jellyfin server on your TV

Tellyfin is a native Android TV app that makes your Jellyfin Live TV work like any other set-top box. Surf up and down through the channels, jump straight to a number, and pull up the full EPG programme guide, all without giving up what you are watching.

  • Android 5.0 and newer
  • Fire TV, Google TV, Android TV
  • MIT licence
  • v2.0.0

Features

Everything a living room needs

Channel surfing, an EPG and search, all reachable from the D-pad, most of them one button press from the stream.

Channel surfing, like any set-top box

Press up or down and the next channel shows up in a small banner, while what you were watching carries on behind it. Wait three seconds and it switches over, press OK to go now, or press back and nothing happened. The CH +/- buttons zap straight across without the wait.

EPG programme guide

The full TV guide: channels down the side, the times running left to right, and a line marking where now is. Press right or GUIDE to open it, and whatever you were watching keeps playing while you browse.

Home screen

A Now Playing card row, All and Favourites filter tabs, and a channel list with progress bars, laid out the way a Google TV home screen is.

Ranked search

Searches channel names and numbers, programme titles, genres and descriptions at once. Diacritic insensitive, and whatever is live right now is ranked first.

Numeric zap

Know the channel number? Type it on the remote and go straight there instead of surfing past everything in between. The digits come up big on screen, and it switches on OK or after a couple of seconds.

Favourites

Mark a channel from the quick menu. Favourites float to the top of the list and get their own filter tab. Stored on the device, never on a server.

Bandwidth cap

Pick Auto, 2, 4, 8, 12, 20 or 40 Mbps in settings. The cap is handed to Jellyfin's transcode endpoint, so a slow connection stays watchable.

Sane networking

The access token travels in an Authorization header and never in a URL, which keeps it out of proxy logs. Transient stream errors are retried quietly before you ever see an error.

Controls

The whole app on one remote

Channel surfing the way a set-top box does it. Nothing here needs a keyboard, a phone companion app or a mouse.

▲ ▼
Surf to the next or previous channel, with a preview
◀
Open the channel list
▶
Open the EPG programme guide
OK
Now Playing panel, or confirm a preview
MENU
Quick menu: favourite, refresh, settings
0 – 9
Jump straight to a channel number
CH +/−
Zap instantly, skipping the preview countdown
BACK
Close whatever is open

Download

Two ways to install it

Through a store, which keeps it up to date for you, or as a plain APK you install yourself.

Get it from a store

Tellyfin is live on the Amazon Appstore, so anyone can install it there. The Google Play release is still a closed test and needs you to join first. Either way the store keeps the app updated for you, and both store builds include crash reporting.

Get it on Google Play

Still a closed test. Open the opt-in page, join the test, then install Tellyfin from Google Play as normal.

Already a tester? Open the Play listing

Available at Amazon Appstore

Live in the Appstore, no invite needed. Search for Tellyfin on your Fire TV and install it straight from the device.

Open it in the Appstore on your device

Google Play and the Google Play logo are trademarks of Google LLC. Amazon, Amazon Appstore and all related logos are trademarks of Amazon.com, Inc. or its affiliates.

Or install the APK yourself

Two builds, one difference. Both are the same app from the same source, signed with the same key. Pick the one you are comfortable with. Installing either replaces the other.

Tellyfin

Recommended

Includes crash reporting, so a crash on your device turns into a stack trace I can actually fix. No analytics, no ads, no tracking of what you watch.

Download APK

Version 2.0.0 · tellyfin-sentry-2.0.0.apk

Tellyfin, no crash reporting

The crash reporting SDK is not a dependency of this build, so its code is not in the APK at all. Nothing to switch off and nothing that can send anything anywhere.

Download APK

Version 2.0.0 · tellyfin-nosentry-2.0.0.apk

What each build sends, in detail: Privacy policy

Getting started

Installed in about five minutes

  1. 1

    Allow app installs from unknown sources

    On Fire TV: Settings, My Fire TV, Developer options, Install unknown apps. On Google TV and Android TV: Settings, Apps, Security & restrictions, Unknown sources.

  2. 2

    Get the APK onto the device

    Use the Downloader app and point it at tellyfin.app/dl, or copy the file across by USB or over the network.

  3. 3

    Install it

    Open the file with the Downloader app or a file manager. From a computer, adb install tellyfin.apk does the same thing.

  4. 4

    Sign in to Jellyfin

    Enter your server address and sign in, with a password or with Quick Connect. Your Live TV channels load straight away.

Under the hood

Native Android, nothing else

Kotlin and first-party Jetpack libraries. No React Native, no Flutter, no WebView.

Jetpack Compose

Declarative UI with androidx.tv:tv-material for the TV component set and focus handling.

Media3 / ExoPlayer

HLS playback with hardware decoding. The player view is kept out of the focus tree so the app sees every D-pad event.

Jellyfin Kotlin SDK

Channels, guide data and playback reporting through jellyfin-core, against the API your server already exposes.

DataStore

Server address, session, last channel, favourites and the bandwidth cap, stored in the app sandbox on the device.

Coroutines

Async work scoped to the view models, including the progress reporting loop and the preview countdown.

Coil

Channel logo loading and caching, with the auth header attached only for requests to your own server.

Tellyfin is MIT licensed. Issues and pull requests are welcome. github.com/Doxylamin/Tellyfin

Questions

Before you install

Can I channel surf, the way I would on a normal TV box?

Yes, that is the whole point of it. Press up or down and you surf to the next channel, seeing it in a banner while what you were watching carries on underneath, so you can flip through everything without giving up your programme. It switches after three seconds, or on OK if you do not want to wait, and back cancels. The CH +/- buttons zap across instantly, and typing a channel number takes you straight there.

How is this different from the official Jellyfin Android TV app?

The official app plays Live TV perfectly well and has a guide, so if it already does what you want, stick with it. The difference is how you change channel. There, pressing down brings up a list of channels to scroll through and pick from. In Tellyfin you step to the channel next door and see it straight away, over the top of what is already playing. Tellyfin also uses the CH +/- buttons and lets you type a channel number, which the official app does not, and it only does Live TV rather than your whole library.

Do I need an account with you?

No. There is no Tellyfin server and no Tellyfin account. The app talks to your Jellyfin server. The only other request it makes is an update check against tellyfin.app on launch, which returns the latest version number and a GitHub download link.

Does it record, or do catch-up and timeshift?

Not today. Tellyfin plays live streams and reads the guide. Recording and catch-up are not implemented, and how much of either is even possible depends on what your Live TV source hands Jellyfin.

Does it work with IPTV or an M3U playlist?

Indirectly, and that is the important distinction. Tellyfin is not an IPTV player and does not take an M3U file itself. It shows whatever your Jellyfin server exposes as Live TV, so if you have set up an M3U playlist, an XMLTV guide or a DVB tuner in Jellyfin, those channels and their EPG data turn up in Tellyfin automatically.

Does it run on a phone or tablet?

No. Every screen is designed around a D-pad and a ten foot viewing distance, and the app declares the leanback feature as required, so it is only offered on TV devices.

Which build should I pick?

If you are happy to send crash reports, take the recommended one. It makes bugs on real devices far easier to fix. If you would rather nothing left the device at all, take the build without crash reporting. Both are identical otherwise.

Is sideloading safe?

The APKs are built by GitHub Actions straight from the tagged commit in the public repository, and the workflow that builds them is in that repository too. You can read the source, read the workflow, or build it yourself with ./gradlew assembleDebug.

Will it work with an older Jellyfin?

It targets Jellyfin 10.11 and 12.0. Older servers may work, but the Live TV endpoints have moved around between releases and nothing below 10.11 is tested.

Is this an official Jellyfin app?

No. Tellyfin is an independent project and is not affiliated with or endorsed by the Jellyfin project. Jellyfin is their trademark, not mine.