nikhilhassija / pytgvoip

Telegram VoIP Library for Python. Modified to directly work with Tor.

Home Page:https://t.me/pytgvoip

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pytgvoip

Telegram VoIP Library for Python

Community

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++.

Features

  • 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

Requirements

Linux, MacOS: (use binary wheels from PyPI for Windows)

  • libtgvoip
  • CMake, C++11-compatible compiler, Python headers

Installing

pip3 install pytgvoip

Encoding audio streams

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 & License

About

Telegram VoIP Library for Python. Modified to directly work with Tor.

https://t.me/pytgvoip

License:GNU Lesser General Public License v3.0


Languages

Language:Python 68.4%Language:C++ 27.6%Language:CMake 4.0%