Skip to content
This repository has been archived by the owner on Feb 15, 2025. It is now read-only.
/ pytgvoip Public archive

Telegram VoIP Library for Python

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.lesser
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

bakatrouble/pytgvoip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d630ab9 · May 14, 2019

History

84 Commits
Apr 15, 2019
May 14, 2019
Mar 29, 2019
May 14, 2019
Apr 15, 2019
Feb 15, 2019
Apr 15, 2019
Mar 29, 2019
Feb 14, 2019
Feb 14, 2019
Mar 29, 2019
Feb 14, 2019
Mar 6, 2019
May 14, 2019
Apr 15, 2019

Repository files navigation

pytgvoip

Read the Docs PyPI AppVeyor (windows wheels) AppVeyor (libtgvoip) LGPLv3+

Telegram VoIP Library for Python

Community | Documentation

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

It is targeted to MTProto client library developers, detailed usage guide is available here.

An example of usage with Pyrogram is available here (pytgvoip_pyrogram in PyPI), could be used as reference.

Hopefully this module support will be integrated in Pyrogram itself, also @cher-nov has plans to integrate it into Telethon as well

Features

  • Python callbacks for sending and receiving audio stream frames allow flexible control
  • Pre-built Windows wheels in PyPI

Requirements

  • Python 3.4 or higher

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

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

Installing

pip3 install pytgvoip

Install pytgvoip_pyrogram to use this module with Pyrogram.

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