Skip to content
🚧 These docs are a work in progress and may contain inaccuracies. Content is being actively reviewed and validated.

Android TV

The Dubby TV app is a native Android TV application built with React Native. It supports standard Android TV devices and the NVIDIA Shield Pro.

The Dubby TV app is currently available via sideloading. Download the APK from the releases page and install it on your device.

  1. Enable Developer options on your Android TV (Settings > About > click Build number 7 times)
  2. Enable USB debugging in Developer options
  3. Find your TV’s IP address (Settings > Network)
  4. Connect via ADB and install:
Terminal window
adb connect <tv-ip-address>
adb install dubby-tv.apk

Any Android TV device running Android 10+ is supported. The app uses ExoPlayer for media playback.

FeatureSupport
VideoHEVC, H.264, VP9
AudioAAC, AC3, EAC3, DTS, Opus, FLAC (up to 5.1)
HDRHDR10, HLG
TransportAlways HLS

The Shield Pro is the most capable client and gets special treatment:

FeatureSupport
VideoHEVC, H.264, VP9
AudioAAC, AC3, EAC3, DTS, TrueHD, Opus, FLAC (up to 7.1)
HDRHDR10, HLG, Dolby Vision (P5, P7, P8)
TransportHTTP Range for MP4/MOV/MKV/WebM; HLS for others
Direct playMP4, MOV, MKV, WebM containers

The Shield Pro supports:

  • MKV containers natively — no remuxing needed
  • Lossless audio passthrough — TrueHD and DTS-HD MA via HDMI
  • Native Dolby Vision — All consumer profiles (P5, P7, P8)

For the best quality with zero transcoding, the Shield Pro is the recommended device.

The app is designed for D-pad remote control navigation:

ButtonAction
D-padNavigate between items
Select/OKConfirm selection, play
BackGo back, close overlay
Play/PauseToggle playback

AAC via HDMI passthrough produces silence on many Android TV devices. Dubby automatically detects this and transcodes to AC3 instead. If you experience audio issues, ensure your TV or AV receiver is set to the correct HDMI input.

The app identifies itself to the server via the X-Dubby-Client header:

DubbyTV/1.0 (Android TV; android; <apiLevel>; <modelName>)

The server uses the model name to detect NVIDIA Shield devices and apply the enhanced device profile automatically.