tvninja

April 8, 2026 · View on GitHub

IPTV / M3U8 player built with Flutter. Watch live TV channels on Android and in the browser with a persistent mini-player experience.

Features

  • M3U8 Playlist Support — load and play IPTV streams from M3U8 playlists
  • Xtream Codes Support — login with Xtream credentials for Live, VOD, and Series
  • IPTV.org Integration — browse country-based playlists (60+ countries)
  • Favorites — save channels for quick access from the home screen
  • Search — find channels quickly by name
  • Group Filtering — filter channels by category or group
  • Background Audio — keep listening when the app is in the background (Android)
  • Audio Only Mode — play audio only to save battery and data (Android)
  • Picture-in-Picture — auto-PiP when leaving the fullscreen player (Android)
  • Persistent Mini-Player — navigate the app while watching, tap to expand
  • Web Support — watch streams in any browser with CORS proxy fallback
  • Material You — dynamic color theming, light and dark mode
  • Google-Free — no Google Play Services required, fully FOSS

Try it Online

Launch tvninja

Some streams may not work in the browser due to CORS restrictions.

Download

Get the latest APK from the Releases page.

APKNotes
tvninja-X.X.X.apkUniversal — works on any device
tvninja-X.X.X-arm64-v8a.apkMost modern Android phones
tvninja-X.X.X-armeabi-v7a.apkOlder 32-bit devices
tvninja-X.X.X-x86_64.apkEmulators

Install via Obtainium

Add https://github.com/Giuig/tvninja in Obtainium to receive automatic updates. Use the APK filter tvninja-\d to select the universal build.

Support

I make FOSS apps in my free time, a coffee would help me keep them going! ☕

Ko-fi

Build

# Prerequisites: Flutter SDK 3.41.5+
flutter pub get
flutter build apk --release --split-per-abi --no-tree-shake-icons --split-debug-info=build/debug-info
flutter build web --base-href=/tvninja/ --release

Part of the ninja apps family

AppDescription
auraninjaAmbient sound mixer and focus app
decisioninjaDecision maker with dice, pointer, and binary choices
ninja_materialShared Flutter library powering all ninja apps

License

License: GPL v3

This project is licensed under the GNU General Public License v3.0.