DVLPR
homeprojectsaboutopen source
Back to projects

TMPlayer

Your Telegram videos, on the TV and in your hand. Start watching before the download finishes.

visit live view source
Screenshot of TMPlayer

About this project

Videos shared through your own Telegram chats are awkward to watch on a television: download to a phone, copy the file across, then find somewhere to keep it. TMPlayer removes that detour. Scan a QR code with the phone that holds your Telegram account, open a chat, pick a video, and playback starts while the file continues downloading. On a phone the same app signs in by number and redraws itself as a Material 3 phone app rather than a TV grid.

The interesting part is the streaming layer. A custom Media3 DataSource maps ExoPlayer's reads onto TDLib's offset-based partial downloads, so seeking to the ninety-minute mark re-aims the download at that byte instead of grinding through everything before it. The window arithmetic lives in one pure class covered by a suite of 209 tests, because that is where a streaming player either works or does not.

Everything is shaped by the hardware it targets, a TV stick with a gigabyte of RAM and under 5 GB of usable storage. One video is cached at a time, previews come straight from Telegram, and a single universal APK covers every architecture. There is no catalogue and no server: the app talks to Telegram with your own credentials, and nothing else.

It ships with its own site at tmplayer.org, covering features, install steps, an FAQ, privacy and lawful use, so a stranger can decide whether to sideload it before downloading anything.

Features

  • QR code sign-in on a TV, phone number sign-in on a phone, both with two-step verification
  • Instant playback and real seeking, both while the file is still downloading
  • MKV, MP4, AVI and TS with embedded PGS and VobSub subtitles and switchable audio tracks
  • Software decoding for DTS, TrueHD and E-AC3 when the device lacks the silicon
  • Episode filenames parsed locally, with previous, next and autoplay across a series
  • One video cached at a time, with continue watching positions that survive a power cut
  • The same APK draws a D-pad TV interface or a Material 3 phone app

Project info

year
2026
stack
KotlinJetpack ComposeAndroid TVMaterial 3TDLibMedia3 ExoPlayerGradleGPL-3.0
status
deployed
start of listSeatInfonext
ProjectsOpen SourceAboutContact

© 2026 Nevil Krishna

GitHubLinkedInEmailSource