TV is an open-source Android media application that supports both TV and mobile devices, built on CatVod and featuring external configuration for flexible content expansion.
The project addresses the need for a unified media player across form factors by combining on-demand and live streaming capabilities with a pluggable content discovery system. It uses ExoPlayer with Media3 and FFmpeg for playback, supporting hardware and software decoding with automatic fallback, and implements a crawler engine that accepts content providers written in Java, JavaScript, or Python. When playback fails, the application automatically switches between resolvers, streams, and content sources to maintain continuity. The tool handles live streams in M3U, TXT, and JSON formats with XMLTV EPG support, and includes advanced networking features such as DNS over HTTPS, dynamic proxy selection by hostname, ad blocking, and WebView URL interception.
Developers building a personal media center or regional streaming application should consider this tool if they need simultaneous support for large-screen and mobile interfaces without maintaining separate codebases. The project suits scenarios where content sources are external and subject to change, since configuration is decoupled from the application binary. The README does not compare the tool to alternatives.
The project maintains active discussion and release channels. Development spans multiple specialized subsystems including DRM support for Widevine, PlayReady, and ClearKey; danmaku synchronization with remote push capability; subtitle injection from multiple sources; DLNA media casting in both directions; and Android Auto integration for vehicle displays. The codebase separates shared business logic from UI implementations for television and mobile flavors, targeting Android 7.0 and above across ARM architectures.