pypi i py-tgcalls


Async client API for the Telegram Group Calls

by pytgcalls

0.9.6 (see all)License:LGPL-3.0
pypi i py-tgcalls

pytgcalls logo
A simple and elegant client that allows you to make group voice calls quickly and easily.
Examples Documentation PyPi Channel Chat

PyTgCalls status PyPI PyPI - Python Version GitHub OS Node Version Architectures Downloads

This project allows making Telegram group call using MtProto and WebRTC, this is possible thanks to the power of NodeJS's WebRTC library and @evgeny-nadymov

What are the supported clients?

The supported clients for now are Pyrogram and Telethon, but we accept other clients too, you can open a pull request with the edits

How to install?

Here's how to install the PyTgCalls lib, the commands are given below:

# With Git
pip install git+ -U

# With PyPi (Recommended)
pip install py-tgcalls -U

Conversion command (Video)

From file to raw video

ffmpeg -i {INPUT_FILE} -f rawvideo -pix_fmt yuv420p -vf scale=640:-1 {OUTPUT_FILE}

From H264/VP8/VP9 to Audio and Video

ffmpeg -i {INPUT_FILE} -f s16le -ac 1 -ar {BITRATE} {OUTPUT_AUDIO_FILE} -f rawvideo -r {FRAMERATE} -pix_fmt yuv420p -vf scale={SCALING}:-1 {OUTPUT_VIDEO_FILE}

From YouTube video/live-stream to Audio and Video

ffmpeg -i "$(youtube-dl -x -g "{YOUTUBE_LINK}")" -f s16le -ac 1 -ar {BITRATE} {OUTPUT_AUDIO_FILE} -f rawvideo -r {FRAMERATE} -pix_fmt yuv420p -vf scale={SCALING}:-1 {OUTPUT_VIDEO_FILE}

From YouTube Live stream to Video


The max resolution allowed by Telegram is of 720p at 30 fps Here also listed the scaling format

  • 360p = 640
  • 480p = 854
  • 720p = 1280

If you have any problem with green screen or un-synchronized video, it can be one of these problems:

  • Invalid FFMPEG command
  • The video quality specified to convert is higher than the original video one
  • Invalid PyTgCalls video parameters
  • If you're using fifo, the Fifo max buffer size is too low and this cause the lag problem.

Conversion commands

From file to raw format

ffmpeg -i {INPUT_FILE} -f s16le -ac 1 -ar {BITRATE} {OUTPUT_FILE}

From stream link to raw format

ffmpeg -y -i {STREAM_LINK} -f s16le -ac 1 -ar {BITRATE} {OUTPUT_FILE}

From YouTube video/live-stream to raw format

ffmpeg -i "$(youtube-dl -x -g "{YOUTUBE_LINK}")" -f s16le -ac 1 -ar {BITRATE} {OUTPUT_FILE}


Big thanks to @evgeny-nadymov for allowing us to use their code from telegram-react, and thanks to alemidev for helping to rebuild this library

This library is based on tgcallsjs developed @AndrewLaneX and pyservercall by @Laky-64