Stream music & video into voice chats

A self-hosted Telegram bot that streams music & video straight into your group's voice chat โ€” YouTube, radio, local files, live TV, recording, and full playback controls.

Pyrogram ยท py-tgcalls ยท ffmpeg ยท yt-dlp

Features

One bot + a dedicated assistant account join the call and stream โ€” you control it all from chat.

๐ŸŽต

YouTube & files

Play from a search query, a direct URL, or any audio file posted in the chat.

๐ŸŽฌ

Video & live

Stream videos and live sources (m3u8, YouTube-live) with selectable 720/480/360 quality.

๐Ÿงฉ

Extra stream resolvers

Drop-in site plugins, plus an optional headless-Chromium fallback that sniffs the stream from JavaScript-only players yt-dlp can't read.

๐Ÿ”Ž

Search picker

/search lists the top results as buttons โ€” pick one to play as audio or video.

๐Ÿ“ป

Internet radio

Dozens of built-in stations with the live now-playing track shown on the video feed.

๐Ÿ“บ

Live TV (IPTV)

/iptv <name> searches 50 000+ channels from the iptv-org public catalogue โ€” tap a result to stream live.

๐Ÿ“ผ

Recording

Record the radio or a video stream to a voice/video message โ€” stop anytime, with a live tracklist.

๐Ÿ“

Local library

Browse and play your own media folders, with audio-track and subtitle selection at play time.

๐ŸŽ›๏ธ

Full controls

Pause, skip, seek (+ 25/50/75% jumps), master volume, mute, loop, shuffle, queue, and screenshots โ€” all from one inline panel or /info.

โšก

Hardware transcoding

VAAPI GPU or CPU transcoding handles HEVC/MKV and anything the stream engine can't take raw.

๐Ÿ”

Self-healing

Auto-reconnects after a drop, resumes the last track after a restart, and leaves when idle.

Commands

A few of the essentials โ€” full list in the bot via /help.

Play

  • /play <query|url> โ€” music
  • /vplay <query|url> โ€” video
  • /vstream <link> โ€” live / m3u8
  • /search <query> โ€” results picker
  • /radio โ€” internet radio
  • /iptv <name> โ€” live TV (50 000+ channels)
  • /library ยท /lplay โ€” local media

Control

  • /pause /resume /skip /stop
  • /seek 12:30 โ€” jump (or 0/25/50/75% buttons)
  • /volume 0-200 โ€” master volume ยท mute
  • /loop /shuffle /clear
  • /info โ€” now playing + controls

Capture & setup

  • /record [duration | START END] ยท /stoprec
  • /screenshot โ€” grab the current frame
  • /song ยท /video โ€” download
  • /userbotjoin ยท /reload
  • /topic lock|unlock|status โ€” forum topic restriction
  • /alive ยท /ping

Quick start

Runs anywhere Docker does. You'll need a bot token, Telegram API credentials, and a session string for the assistant account.

Clone and configure

git clone https://github.com/antlis/tg-streaming-bot.git
cd tg-streaming-bot
cp example.env .env   # fill in the Required block

Build & run

docker compose up -d --build

Play something

In your group: add the bot as admin, start a voice chat, then /userbotjoin and /play <song>.

Prefer Nix? nix run github:antlis/tg-streaming-bot with the same environment variables โ€” the flake builds Pyrogram, py-tgcalls and the native ntgcalls library for you, and includes a home-manager module.

Full setup, configuration reference, and notes on running where Telegram is filtered are in the README.