// the find
MarshalX/tgcalls
Voice chats, private incoming and outgoing calls in Telegram for Developers
A Python binding to Telegram's own C++ tgcalls library (via pybind11), paired with a high-level pytgcalls SDK that plugs into Pyrogram or Telethon. It's aimed at userbot developers who want to join and broadcast in Telegram voice chats or handle calls programmatically.
Binds directly to the same tgcalls C++ code Telegram Desktop and Android use, rather than reimplementing the voice protocol from scratch, so audio quality and protocol behavior track the real client. Ships prebuilt wheels across macOS, Linux, and Windows for multiple Python versions, so most users skip the C++ build entirely. Supports three distinct I/O backends — raw bytes, file/FIFO, and virtual device — which covers real use cases like restreaming, recording-as-a-plugin, and live FFmpeg pipes. Abstracts the MTProto layer behind a bridge class so it isn't locked to Pyrogram; Telethon is supported out of the box and others can be added.
No commits since January 2023 — nearly four years stale as of now, which is a real problem for something riding on Telegram's own protocol, since MTProto and voice chat internals do shift over time. Documentation is explicitly a stand-in: the README says to read the examples instead of real docs, so you're reverse-engineering the API from scripts. Advertised features are incomplete — private incoming/outgoing calls exist but aren't in a released version, and group video calls never shipped, still sitting on the issue tracker. Building from source means Docker, git submodules, and compiling against WebRTC, which is a heavy, fragile dependency chain for a library that looks abandoned.