ntgcalls
A Native Implementation of Telegram Calls in a seamless way.
What it is and what it does
NTgCalls is a lightweight C++ library with Python bindings that handles media streaming for Telegram voice and video calls. It wraps WebRTC and Boost under the hood to provide low-level access to call setup, codec handling, and media control (pause, resume, mute, unmute) without requiring a full Telegram client. The library supports group and private calls, screen sharing, microphone and camera streaming, and a range of modern codecs.
Developers use it to build custom Telegram call applications—bots, recording tools, or relay services—that need to send or receive audio and video in Telegram calls. It is designed to be lightweight and resource-efficient, with no Node.js dependency, and offers bindings for Python, Go, C, and Java (Android). The package is actively maintained and provides pre-built wheels for common platforms.
Use it for:
- Build a Telegram bot that joins group calls and streams audio or video content
- Create a call recording or monitoring tool that captures audio/video from Telegram calls
- Implement a relay or bridge service that forwards media between Telegram and other platforms
- Develop a custom Telegram client with call support for specialized use cases
- Stream screen content or live media feeds into Telegram group calls
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
NTgCalls provides Python bindings to a C++ library for streaming audio and video in Telegram calls, supporting codecs like H.264, HEVC, VP8, VP9, AV1, AAC, MP3, and Opus.
Yes, if you need to stream media in Telegram calls from Python and are willing to work with a library whose license is not yet clearly documented. The package is actively maintained, has no known vulnerabilities, and provides pre-built wheels for common platforms, reducing install friction. Verify the license terms before use in proprietary projects, and confirm that the API surface and documentation meet your integration needs.
Install
ntgcalls on PyPI
pip
pip install ntgcallsuv
uv add ntgcallspoetry
poetry add ntgcallsInstalling ntgcalls
Before you install
Medium install friction due to compiled wheels; the package provides pre-built binaries for Python 3.10–3.14 across macOS (arm64), Linux (x86_64, arm64), and Windows (x86_64). Maintenance is active with a recent commit on 2026-08-03.
License in practice
License status is unclear; no SPDX identifier or raw license text is available in the package metadata. Verify the actual license terms before use in proprietary or copyleft-sensitive projects.
Quickstart
pip install ntgcalls
import ntgcalls
# Consult documentation at https://pytgcalls.github.io/NTgCalls for API usage
Requires Python 3.10 or later; pre-built wheels are available only for specific architectures (macOS arm64, Linux x86_64/arm64, Windows x86_64).
Verify before relying
- Specific Python API surface and call setup/teardown patterns not detailed in excerpt
- Whether the package requires Telegram client credentials or API tokens to function
- Performance characteristics and resource overhead for concurrent calls
- Exact codec negotiation behavior and fallback strategies
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 53 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 113,604/month — #12,339 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ntgcalls-2.2.5-cp310-cp310-macosx_14_0_arm64.whl; ntgcalls-2.2.5-cp310-cp310-manylinux_2_28_aarch64.whl; ntgcalls-2.2.5-cp310-cp310-manylinux_2_28_x86_64.whl; ntgcalls-2.2.5-cp310-cp310-win_amd64.whl; ntgcalls-2.2.5-cp311-cp311-macosx_14_0_arm64.whl; ntgcalls-2.2.5-cp311-cp311-manylinux_2_28_aarch64.whl; ntgcalls-2.2.5-cp311-cp311-manylinux_2_28_x86_64.whl; ntgcalls-2.2.5-cp311-cp311-win_amd64.whl; ntgcalls-2.2.5-cp312-cp312-macosx_14_0_arm64.whl; ntgcalls-2.2.5-cp312-cp312-manylinux_2_28_aarch64.whl; ntgcalls-2.2.5-cp312-cp312-manylinux_2_28_x86_64.whl; ntgcalls-2.2.5-cp312-cp312-win_amd64.whl; ntgcalls-2.2.5-cp313-cp313-macosx_14_0_arm64.whl; ntgcalls-2.2.5-cp313-cp313-manylinux_2_28_aarch64.whl; ntgcalls-2.2.5-cp313-cp313-manylinux_2_28_x86_64.whl; ntgcalls-2.2.5-cp313-cp313-win_amd64.whl; ntgcalls-2.2.5-cp314-cp314-macosx_14_0_arm64.whl; ntgcalls-2.2.5-cp314-cp314-manylinux_2_28_aarch64.whl; ntgcalls-2.2.5-cp314-cp314-manylinux_2_28_x86_64.whl; ntgcalls-2.2.5-cp314-cp314t-macosx_14_0_arm64.whl
Keywords: audio, python, library, video, telegram, stream, ffmpeg, cpp, webrtc, voice-chat, voip, group-chat, video-calls, calls, video-chat, pytgcalls, ntgcalls, tgcalls, py-tgcalls
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
pytgcallsEnables Python bots to join Telegram voice…
copyleft · top 5,000 on PyPI
pynvvideocodecPyNvVideoCodec provides hardware-accelerated…
permissive · top 15,000 on PyPI
streamlit-webrtcAdds real-time video and audio streaming over…
permissive · top 15,000 on PyPI
pygletpyglet is a cross-platform windowing and…
unclear · top 5,000 on PyPI
daily-pythonA Python SDK for building video and audio…
permissive · top 15,000 on PyPI
go2rtc-clientAsynchronous Python client library for…
permissive · top 15,000 on PyPI
torchcodecTorchCodec decodes and encodes videos, audio,…
unclear · top 5,000 on PyPI
ha-ffmpegProvides an asyncio-based Python interface to…
permissive · top 15,000 on PyPI
gTTSgTTS converts text to speech using Google…
permissive · top 5,000 on PyPI
aws_sdk_transcribe_streamingProvides a Python client for AWS Transcribe…
permissive · top 15,000 on PyPI