Skip to content
📺 Android TV Leanback Experimental MythTV Frontend
Branch: master
Clone or download
Pull request Compare This branch is 18 commits ahead, 2 commits behind googlearchive:master.
bennettpeter Add bookmark support
On exit from playback the MythTV bookmark is set.
On the details card before playing, if there is a bookmark, display
options "Play from start" and "Play from bookmark"
Latest commit 3f5e1d7 Aug 26, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.google Fix many inspection issues Dec 1, 2015
app Add bookmark support Aug 26, 2019
screenshots Update screenshot showing all different fragments and views Apr 15, 2016
.gitignore Add some columns to the local database and populate them. Aug 23, 2019 Fix many inspection issues Dec 1, 2015
LICENSE Added/Edited files necessary for being in Android Studio samples Apr 3, 2015 Add some columns to the local database and populate them. Aug 23, 2019
build.gradle Update gradle and deps to use latest versions. Aug 3, 2019 Convert to Androidx Jan 10, 2019
gradlew git add gradlew Jul 23, 2014
settings.gradle git add androidtv-Leanback.iml Jul 23, 2014

leanfront: MythTV Experimental Android TV frontend

This is based on a clone of the sample Videos By Google app, designed to run on an Android TV device (such as the Shield or Amazon Fire Stick). It uses the Leanback Support library which enables you to easily develop beautiful Android TV apps with a user-friendly UI that complies with the UX guidelines of Android TV.


4K video plays successfully at 60fps with full 4K resolution. This is currently not achievable with the android port of mythfrontend.

This application is is a state of development, but parts are working. It still contains some "google videos" icons and banners and the user interface needs improvement.

Currently it will play recordings from a MythTV backend. All recordings are presented in a way that is consistent with other leanback applications. There is no support yet for recording groups. All recordings in all groups are shown together in the user interface.

This application uses the MythTV api to communicate with the backend. It needs no access to the database password, and will work on all versions of mythbackend. Note that the settings ask for the myth protocol port but the application currently is not using it.

Voice search within the application is supported.


  • Playback with the shield needs a TV that supports AC3 (I believe all TVs should support that) as the shield is unable to decode AC3 in hardware. The amazon fire stick 4K will decode AC3 in hardware so works on a monitor without AC3 support. You must select surround sound or auto in the shield audio setup.

To Do List

Planned additions and fixes.

  • Prevent backend shutdown, except if frontend minimized. Currently the backend could shut down in the middle of playback.
  • Use service call to get preview image. Currently it is going direct to the image.
  • Use bookmarks to stop and continue playback. Currently it always starts at the beginning and does not save the position on exit.
  • Allow delete after watching.
  • Recording groups support needed.
  • Videos need to be supported (only recordings are currently shown).
  • Periodically refresh program list. If recordings change while the app is running it does not know about the changes.
  • LiveTV and in progress recordings. I don't know if we can support these.
  • Subtitles.
  • Clean up icons and images.
  • Clean up unused code.
  • Improve settings page.
  • Do we need grid view? Currently it is there but maybe not useful.
  • Sort out license. The sample app uses apache license.
  • When exiting playback the display is not focused on the recording just played. It jumps to the top of the list.
  • Better error handling, for example if the backend is down or cannot be contacted.
  • Anamorphic content is not showing correctly.
  • Allow search from android home screen.
  • Allow recommendations from android home screen.


  • If you do not want to build this yourself, there is a package at
  • Open the project in Android Studio.
  • Compile and deploy to your Android TV device (such as a Shield or Amazon fire stick).
  • It can also be run with an android emulator, but the emulator that comes with android studio does not support MPEG2 or AC3 playback, so you need to play an h264 or h265 recording with non-ac3 audio.


Start up the app. There is an entry on the main screen called "Other" with an entry called "settings". There you need to enter the backend ip address. Only the backend ip address and backend port are currently used. Other entries here are for future use or may be removed.

Make sure the backend is not set up for automatic shutdown when inactive. Otherwise it may shut down during playback.

Note that when you exit the settings sidebar it refreshes the list of recordings. This is also a way to refresh the list until we add automatic refresh.

Make sure you select surround sound or auto in the audio setup.

Features of the sample

Additonal Resouroces




If you need additional help, our community might be able to help.


If you use Android Studio as recommended, the following dependencies will automatically be installed by Gradle.

  • Android SDK v7 appcompat library
  • Android SDK v17 leanback support library
  • Android SDK v7 recyclerview library


We love contributions! 😄 Please follow the steps in the CONTRIBUTING guide to get started. If you found a bug, please file it here.


Licensed under the Apache 2.0 license. See the LICENSE file for details.

You can’t perform that action at this time.