Telegram VoIP Library for Python
Supported MTProto frameworks: Pyrogram
from pyrogram import Client
from tgvoip import VoIPFileStreamService
app = Client('account')
app.start()
service = VoIPFileStreamService(app, receive_calls=False)
call = service.start_call('@bakatrouble')
call.play('input.raw')
call.play_on_hold(['input.raw'])
call.set_output_file('output.raw')
@call.on_call_ended
def call_ended(call):
app.stop()
app.idle()
PytgVoIP is a Telegram VoIP library written in Python and C++.
It uses libtgvoip (a library used in official clients) for voice encoding and transmission, and pybind11 for simple generation of Python extension written in C++.
- Making and receiving Telegram calls
- Python callbacks for sending and receiving audio stream frames allow flexible control (see
alsa.py
example which uses system audio devices) - Included classes that use files for audio playback/record
- Pre-built Windows wheels in PyPI
- Python 3.4 or higher
- A Telegram API key
Linux, MacOS: (use binary wheels from PyPI for Windows)
- libtgvoip
- CMake, C++11-compatible compiler, Python headers
pip3 install pytgvoip
Streams consumed by libtgvoip
should be encoded in 16-bit signed PCM audio.
$ ffmpeg -i input.mp3 -f s16le -ac 1 -ar 48000 -acodec pcm_s16le input.raw # encode
$ ffmpeg -f s16le -ac 1 -ar 48000 -acodec pcm_s16le -i output.raw output.mp3 # decode
- Copyright (C) 2019 bakatrouble
- Licensed under the terms of the GNU Lesser General Public License v3 or later (LGPLv3+)