Skip to content

bcncalling/pytgcalls

 
 

Repository files navigation

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

PyTgCalls

pre-commit.ci 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 NTgCalls library and @evgeny-nadymov

What are the supported clients?

The supported clients for now are Pyrogram, Telethon and Hydrogram, 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+https://github.com/pytgcalls/pytgcalls -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

Important!

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}

Credits

Many thanks to @evgeny-nadymov for graciously permitting us to utilize their code from telegram-react. Additionally, we extend our gratitude to @alemidev for their invaluable assistance in reconstructing this library, and to @TuriOG for implementing NTgCalls within the library.

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

About

Async client API for the Telegram Group Calls

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Other 0.1%