A basic app for watching Fishtank.live on Android TV (unofficial).
Port of the Roku app to Android TV / Fire TV.
- Login with Fishtank.live email/password
- Auto-login with cached tokens on subsequent launches
- Camera grid with live thumbnails and online/offline indicators
- Full-screen HLS video playback
- Switch cameras without leaving the player (press Up)
- Stream quality selection: High / Medium / Low (press Down)
- Edge server override for outages (press Down)
- Quality and server preferences persist across sessions
- Automatic token refresh via background re-login on stream errors
| Button | Action |
|---|---|
| D-pad | Navigate cameras |
| OK | Open selected camera stream |
| Menu | Log out |
| Button | Action |
|---|---|
| OK | Show camera name, quality, and server info |
| Up | Open camera switcher |
| Down | Open stream settings (quality and server) |
| Back | Return to camera grid |
| Button | Action |
|---|---|
| Up / Down | Navigate camera list |
| OK | Switch to selected camera |
| Back | Close switcher |
Download the latest APK from Releases.
Note: This app is not available on the Google Play Store or Amazon Appstore. It uses an unofficial, reverse-engineered API and is not affiliated with Fishtank.live. Sideloading is the only way to install it.
- On the Fire TV Stick: Settings > My Fire TV > Developer Options
- Enable ADB Debugging
- Enable Apps from Unknown Sources
- Note the IP from Settings > My Fire TV > About > Network
- From a computer on the same network with ADB installed:
adb connect <fire-tv-ip>:5555
adb install fishtank-android-tv-v0.1.0.apkOr install the Downloader app on the Fire TV and enter the APK download URL from GitHub releases directly.
Note: Requires Fire TV Stick 3rd Gen or newer (Android 6.0+ / Fire OS 6+). Fire TV Stick 2nd Gen and older are not supported. If Developer Options is hidden, go to Settings > My Fire TV > About and click the device name 7 times to unlock it.
- Settings > My Fire TV > Developer Options
- Enable ADB Debugging
- Enable Apps from Unknown Sources
- Install via ADB from a computer or use the Downloader app (same as above)
- Settings > Device Preferences > About and click Build 7 times to enable Developer Options
- Settings > Device Preferences > Developer Options
- Enable USB Debugging (or Network Debugging for wireless ADB)
- Enable Install from Unknown Sources
- Install via ADB:
adb connect <tv-ip>:5555
adb install fishtank-android-tv-v0.1.0.apkOr use a file manager app to open the APK from a USB drive.
All sensitive data stored on the device is encrypted using Android Keystore with AES-256-GCM. The encryption key is hardware-backed and never leaves the device.
| Data | Encrypted | Purpose |
|---|---|---|
| Yes | Background re-login for token refresh | |
| Password | Yes | Background re-login for token refresh |
| Access Token | Yes | REST API authentication |
| Live Stream Token | Yes | HLS stream URL JWT parameter |
| Display Name | No | Shown in header (non-sensitive) |
| Quality / Server | No | User preferences (non-sensitive) |
Credentials are stored to allow the app to re-login automatically in the background to refresh the stream token (JWT), which expires every 30 minutes.
- JDK 17
- Android SDK (cmdline-tools, platform-tools, build-tools 34.0.0, API 34-35)
- Android TV emulator (included with Android SDK) or a Fire TV / Android TV device on the same network for physical testing
Note: This app has only been tested with the Android TV emulator. Physical device testing (Fire TV Stick 3rd Gen+, Android TV boxes, etc.) is untested but should work with any device running Android 6.0+ (API 23+).
git clone https://github.com/barrettotte/fishtank-android-tv.git
cd fishtank-android-tv
cp .env.example .envsudo pacman -S jdk17-openjdk
mkdir -p $HOME/Android/Sdk/cmdline-tools
cd /tmp
curl -sLO "https://dl.google.com/android/repository/commandlinetools-linux-14742923_latest.zip"
unzip commandlinetools-linux-14742923_latest.zip
mv cmdline-tools $HOME/Android/Sdk/cmdline-tools/latest
rm commandlinetools-linux-14742923_latest.zip
# Add to .zshrc or .bashrc
export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_AVD_HOME=$HOME/.config/.android/avd
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
# Install SDK packages
sdkmanager "platform-tools" "platforms;android-34" "platforms;android-35" \
"build-tools;34.0.0" "emulator" "system-images;android-34;android-tv;x86"
yes | sdkmanager --licenses- Go to Settings > My Fire TV > Developer Options
- Enable ADB Debugging
- Enable Apps from Unknown Sources
- Note the IP from Settings > My Fire TV > About > Network
- Run
adb connect <ip>:5555- accept the "Allow USB debugging?" dialog on the TV screen and check "Always allow from this computer"
If Developer Options is hidden, go to Settings > My Fire TV > About and click the device name 7 times to unlock it.
- Edit
.envwith your device IP:FIRE_TV_IP=192.168.1.100
make deployThis builds the debug APK and installs it onto the Fire TV Stick.
Uses the android-tv system image which provides the Android TV launcher with Leanback home screen and D-pad navigation.
# one-time setup
make avd_create
# build, launch emulator, install, and run
make emulateIf emulator keys aren't working: The AVD may have
hw.keyboard=noby default. Edit$ANDROID_AVD_HOME/FishtankTV.avd/config.iniand sethw.keyboard=yes, then also sethw.keyboard = trueinhardware-qemu.iniin the same directory. Kill the emulator and relaunch.
# view app logs
make debug
# view emulator logs
make debug_emumake lint # run Android lint
make test # run unit tests
make clean # delete build output



