In the latest beta version of py-tgcalls, several new features have been introduced to improve the flexibility and functionality of the library. One notable addition is the
send_frame method, which allows for sending audio frames manually, providing greater control over how data is transmitted during calls.Additionally, the example scripts have been updated to showcase some of the new capabilities. This includes the ability to transcribe voice chats into text using Whisper, the AI-driven transcription tool, as well as the option to create a bridge between two calls. Another example demonstrates how to manipulate audio streams and send them manually using the
send_frame function.For more information and to check out the updated examples, you can follow the links below:
โข Transcribe Voice Chat Example
โข Create Call Bridge Example
โข Manipulate and Send Audio Example
These updates provide developers with enhanced tools for managing and manipulating audio during Telegram calls, offering more customization and control.
Please open Telegram to view this post
VIEW IN TELEGRAM
โค3
Reflecting on our journey, Iโd like to share some thoughts regarding the evolution of pyโtgcalls, a project I launched in 2021 with @twitface during the height of the COVID pandemic, and one that continues to make me proud.
Over time, it has become increasingly evident that Telegram is shifting its focus. Once a platform that upheld commendable values, it now seems primarily driven by profit maximization. While I understand that revenue is essential for any business to thrive, it is disheartening to see resources reinvested solely to boost profits rather than to enhance the user experience or address long-standing issues that have been raised over the years.
This approach not only diminishes the platformโs commitment to its community, but it also manifests in other areas, such as the noticeable decline in the quality of group calls. Although pyโtgcalls is nearing the release of a major stable update, our testing phase has already revealed some of these issues. Itโs no wonder that many developers are beginning to step away from a platform that forces them to contend with not only building their projects but also grappling with systemic challenges intrinsic to Telegram.
I invite you to share your thoughts on this matter, I look forward to a constructive discussion.
Please open Telegram to view this post
VIEW IN TELEGRAM
โค5๐2๐คฌ2๐ฏ2๐1
โข Group Calls V2 & Screen Streaming โ Now you can stream both video and screen simultaneously! Learn more: pytgcalls.types.raw.Stream
โข Stream Recording Support โ Record your streams with ease! Check out record()
โข Performance & Stability Boost โ Upgraded to the latest WebRTC (m132) for better efficiency
โข Java for Android Support โ Now PyTgCalls works with Java! More details: NTgCalls Library & Telegram-X
โข Massive CPU Optimization โ CPU usage reduced by up to 60%, system calls by 90%!
โข Enhanced Debugging โ C Binding error messages are now more detailed
โข Native Media Device Support โ Stream your mic, camera, or screen natively! See: MediaDevices
โข OpenH264 Support โ Lower CPU usage and better performance
Certain methods have moved or renamed. Details here.
To experience NTgCalls on Android, check out the Telegram X-based repo. The latest APK is also available for testing from TgX Alpha Channel.
github.com/pytgcalls/ntgcalls
github.com/pytgcalls/pytgcalls
git.io/pytgcallsdocs
@PyTgCallsNews
pytgcalls.github.io/changelogs
@PyTgCallsChat
pypi.org/project/py-tgcalls/
Please open Telegram to view this post
VIEW IN TELEGRAM
โค7๐ฅ3๐1
I've been working on a small patch update, the final major release for this quarter. Most of the features on our roadmap are already in place, and now I'm focusing on fixing the โUnmuteNeededโ error. Unfortunately, I haven't been able to replicate the issue since I don't have access to group calls with more than 20 participants. If any of you are part of channels or group chats that host larger calls, please let me know. Your help in testing this would be immensely appreciated!
Thank you!
Please open Telegram to view this post
VIEW IN TELEGRAM
๐5โค1
Thanks to your help, I was finally able to identify the main reason why PyTgCalls doesnโt work on channel calls with more than 20 members. Itโs not exactly a bug, but rather a missing feature, as Iโve mentioned a few times before, and now I can confirm it for sure.
Telegram actually uses two different types of connections for channel group calls. The first one is WebRTC-based, and it works just fine until the group call reaches 20+ participants. After that point, Telegram switches to a completely different system called StreamConnection, which relies on MTProto methods like getFile and InputGroupCallStream.
This means the call switches from a real-time stream to something that behaves more like downloading chunks of audio, video, or screen-sharing data via getFile. Itโs a totally different connection model, and now that I understand how it works, I can finally start working on supporting it properly.
That said, this will take some time to implement, itโs a pretty significant change under the hood. But now that I have a clear direction, Iโll keep you all updated on the progress.
Thanks again for making this discovery possible!
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ12๐5โค4
Just a quick heads-up, Iโve released the final update for now. If everything goes smoothly, this version will be promoted to โRelease Candidateโ, and once thatโs confirmed, itโll move on to become the new stable release.
Now, I have a little bittersweet news to share. This is going to be the last major update of the year. The reason is simple: the project is already quite feature-complete. Iโve implemented pretty much everything I had in mind. The only major feature thatโs still missing is โEncrypted Group Calls,โ but since itโs not an urgent priority, Iโll likely postpone it for later.
Also, Iโve fixed pretty much all the known bugs, thanks to the community for all the reports and feedback, it helped a lot!
Thanks a lot to everyone whoโs followed the progress so far, your support means a lot!
Please open Telegram to view this post
VIEW IN TELEGRAM
10โค9๐3โก1๐ฅ1
โข Support for Large Group Calls โ PyTgCalls now supports group calls with 20 or more participants in channels, allowing the deprecation of the
UnMuteNeeded exception.โข RTMP Streams Integration โ You can now connect to RTMP streams and record them using the record() method. This enables streaming external RTMP content directly into your group calls.
โข Group Call Discarding Option โ The close parameter has been added to the leave_call() method, allowing you to fully terminate a group call when it's no longer needed.
โข Enhanced Participant Caching โ The get_participants() method now supports proper caching for clients using the
no_update parameter, ensuring accurate participant lists without triggering unnecessary updates.โข New ChatUpdate Event โ The ChatUpdate event has been introduced to track changes such as busy call status. You can now use the
filters.chat_update(ChatUpdate.Status.BUSY_CALL) filter to monitor these updates.โข New Group Call Participant Event โ The UpdatedGroupCallParticipant event enables handling of actions like participants joining from another device or being kicked. Use
filters.call_participant(GroupCallParticipant.Action.KICKED) to listen for such events.โข Improved Audio/Video Encoding Performance โ Audio and video encoding performance has been significantly improved thanks to an optimized FFmpeg build. The latest version takes advantage of advanced CPU instruction sets like AVX2, resulting in faster processing and lower latency.
โข Bug Fixes โ Addressed various bugs for a more stable experience.
Certain methods have moved or renamed. Details here.
๐ #PyTgCon2K24 Winner Announced!
The repository AshokShau/TgMusicBot won the #PyTgCon2K24 contest! It is now officially featured in the Quickstart section of the NTgCalls documentation.
github.com/pytgcalls/ntgcalls
github.com/pytgcalls/pytgcalls
git.io/pytgcallsdocs
@PyTgCallsNews
pytgcalls.github.io/changelogs
@PyTgCallsChat
pypi.org/project/py-tgcalls/
Please open Telegram to view this post
VIEW IN TELEGRAM
โค3๐ฅ3โก2๐ฅฐ1๐ฟ1
On Respect, Identity, and the Purpose of This Project...
Over the past few days, Iโve been the target of personal attacks from some users within the py-tgcalls community. These attacks have nothing to do with the code, the quality of the project, or any technical matter they are based on who I am: my identity, my orientation, and how I choose to express myself.
I want to take a moment to address something bigger than just this incident. Too often, especially online, people are judged and attacked not for what they do, but for what they represent, their skin color, their gender, their sexuality, their way of speaking or being.
Sadly, this kind of behavior happens even within communities that claim to stand for inclusion and support. Even among those who know, or should know, how painful discrimination feels.
Itโs disheartening to say this, but sometimes the harshest judgment comes from people who should understand best what itโs like to be judged. Toxicity doesnโt discriminate, and no community is automatically immune to reproducing the same patterns it claims to fight.
Iโve never expected everyone to agree with me, not as a person, not as a developer. But Iโve always asked for one simple thing: respect. That goes for everyone: contributors, critics, users, and observers.
py-tgcalls was built as a technical, open-source project, made to be shared, improved, and shaped by anyone willing to contribute constructively. Thatโs the spirit I intend to keep. Constructive feedback, even tough criticism, is welcome. Personal attacks, veiled insults, or attempts to discredit someone for who they are are not.
I donโt plan to continue engaging in this kind of drama. This will be my only public statement on the matter.
If you're here to collaborate, you're always welcome. If you're here to pick fights, find someone to blame, or turn this into a battleground this isn't the place.
Thank you to those who continue to support and improve this project with honesty, respect, and humanity.
Over the past few days, Iโve been the target of personal attacks from some users within the py-tgcalls community. These attacks have nothing to do with the code, the quality of the project, or any technical matter they are based on who I am: my identity, my orientation, and how I choose to express myself.
I want to take a moment to address something bigger than just this incident. Too often, especially online, people are judged and attacked not for what they do, but for what they represent, their skin color, their gender, their sexuality, their way of speaking or being.
Sadly, this kind of behavior happens even within communities that claim to stand for inclusion and support. Even among those who know, or should know, how painful discrimination feels.
Itโs disheartening to say this, but sometimes the harshest judgment comes from people who should understand best what itโs like to be judged. Toxicity doesnโt discriminate, and no community is automatically immune to reproducing the same patterns it claims to fight.
Iโve never expected everyone to agree with me, not as a person, not as a developer. But Iโve always asked for one simple thing: respect. That goes for everyone: contributors, critics, users, and observers.
py-tgcalls was built as a technical, open-source project, made to be shared, improved, and shaped by anyone willing to contribute constructively. Thatโs the spirit I intend to keep. Constructive feedback, even tough criticism, is welcome. Personal attacks, veiled insults, or attempts to discredit someone for who they are are not.
I donโt plan to continue engaging in this kind of drama. This will be my only public statement on the matter.
If you're here to collaborate, you're always welcome. If you're here to pick fights, find someone to blame, or turn this into a battleground this isn't the place.
Thank you to those who continue to support and improve this project with honesty, respect, and humanity.
โค13๐2๐ญ2๐ฅฐ1๐1
Which MTProto Client do you use often?
And which client would you like to be added? (Answer in the group)
And which client would you like to be added? (Answer in the group)
Anonymous Poll
31%
Pyrogram
33%
Telethon
4%
Hydrogram
49%
Pyrogram Forks
6%
Anything else (Specify in the group)
Forwarded from Lauren's Blog
๐ New Open-Source Telegram Bot for iOS Beta Access
Hey everyone, over the past month Iโve been working โsecretlyโ on a small side project.
The idea came from a personal need, I always wanted a simple tool to manage all the links for iOS beta apps (via TestFlight) without having to refresh them constantly.
So I built it: a Telegram bot with a mini app interface that lets you:
โข ๐ Save and organize all your beta links in one place
โข ๐ Get instant notifications when new slots open
โข ๐ Keep everything clean and easy to manage
Itโs been incredibly helpful for me, and I thought others here might find it useful too. The project is also open source, so feel free to check it out or contribute!
Iโd love to hear your feedback and ideas to improve it!
Hey everyone, over the past month Iโve been working โsecretlyโ on a small side project.
The idea came from a personal need, I always wanted a simple tool to manage all the links for iOS beta apps (via TestFlight) without having to refresh them constantly.
So I built it: a Telegram bot with a mini app interface that lets you:
โข ๐ Save and organize all your beta links in one place
โข ๐ Get instant notifications when new slots open
โข ๐ Keep everything clean and easy to manage
Itโs been incredibly helpful for me, and I thought others here might find it useful too. The project is also open source, so feel free to check it out or contribute!
Iโd love to hear your feedback and ideas to improve it!
โค3
I want to give you a quick update regarding the upcoming Py-TgCalls release. The new version will likely be delayed due to some personal and technical challenges, and I sincerely apologize for this.
The main technical issue concerns handling the playback of the same stream twice. Currently, the logic allows adding an audio stream while a video stream is running (or vice versa) without restarting the ongoing stream. However, this design creates problems if the same stream is played again or if a restart from the beginning is explicitly required, either the stream doesnโt restart, or the elapsed time continues. Resolving this requires significant architectural adjustments.
On a positive note, macOS builds are now working, thanks to moving from AppleClang 17 to Google Clang 21, although LTO support had to be removed to achieve this.
Iโm taking the time needed to properly address these issues, and Iโll keep you updated with any developments and future improvements.
Thank you for your patience and continued support, it truly means a lot to me!
Please open Telegram to view this post
VIEW IN TELEGRAM
โค5โคโ๐ฅ1๐ฅ1๐ฅฐ1
At least theyโre actively working on it, the issue has been moved from โWebRTCโ to โWebRTC > Buildโ
Iโm still waiting for a response from the Google team before I can release the new update
Iโm still waiting for a response from the Google team before I can release the new update
โค3
โข Stream Change Control โ Added
keep_open parameter to AudioDescription and VideoDescription, allowing you to force stream changes or let the StreamManager automatically detect them.โข JSON Performance Boost โ Replaced nlohmann JSON with Boost.JSON for improved parsing and serialization performance.
โข Android Builds Now Stable โ Addressed the experimental-relative-c++-abi-vtables issue on x86_64, making Android builds fully stable and production-ready.
โข Android Audio Improvements โ Now using Oboe for audio handling on Android, providing lower latency and better performance.
โข Linux Performance Upgrades โ Updated to the latest versions of libX11, FFmpeg, mesa, glib, boost and libwebrtc for improved stability and performance.
โข Bug Fixes โ Addressed various bugs for a more stable experience.
To experience NTgCalls on Android, check out the Telegram X-based repo. The latest APK is also available for testing from TgX Alpha Channel.
github.com/pytgcalls/ntgcalls
github.com/pytgcalls/pytgcalls
git.io/pytgcallsdocs
@PyTgCallsNews
pytgcalls.github.io/changelogs
@PyTgCallsChat
pypi.org/project/py-tgcalls/
Please open Telegram to view this post
VIEW IN TELEGRAM
โค3๐ฅ1๐1
Which Linux distribution are you currently using with PyTgCalls?
Anonymous Poll
58%
Ubuntu 24.04+, Debian 12+, Fedora 39+, Arch Linux, openSUSE Tumbleweed
46%
Ubuntu 22.04, Debian 11, Rocky Linux 9, AlmaLinux 9, RHEL 9
14%
Ubuntu 20.04, Rocky Linux 8, AlmaLinux 8, RHEL 8, CentOS Stream 8
6%
CentOS 7, RHEL 7, Ubuntu 18.04, Debian 10
8%
Alpine Linux / musl-based distros
6%
Other (write in comments)
Please open Telegram to view this post
VIEW IN TELEGRAM
โข Performance & Stability Boost โ Upgraded WebRTC to the latest version (m149) and updated to the latest versions of FFmpeg, boost, libX11, mesa, glib and pybind11 for improved stability and performance.
โข CPython Free-Threading โ Added support for CPython free-threaded builds, enabling GIL-free module execution for improved parallelism.
โข Android Tooling โ Upgraded Gradle and Android Gradle Plugin to the latest versions.
โข Bug Fixes โ Addressed various bugs for a more stable experience.
โผ๏ธ Breaking Changes
Dropped support for manylinux2014, which also means the following systems are no longer supported:
โข CentOS 7
โข RHEL 7
โข Ubuntu 18.04
โข Debian 10
This change is required to keep up with newer toolchains, libc versions and CI infrastructure.
๐ Try NTgCalls on Android with Telegram X
To experience NTgCalls on Android, check out the Telegram X-based repo. The latest APK is also available for testing from TgX Alpha Channel
๐ Happy Pride Month
Wishing you all a good month, wherever you are and whoever you are. Stay safe, stay you
github.com/pytgcalls/ntgcalls
github.com/pytgcalls/pytgcalls
git.io/pytgcallsdocs
@PyTgCallsNews
pytgcalls.github.io/changelogs
@PyTgCallsChat
pypi.org/project/py-tgcalls/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ4
I've been working for quite some time on a major NTgCalls and Py-TgCalls update that introduces a huge number of features, including support for Protocols V12 and V13, Conference Calls, macOS Media Devices and Desktop Streaming, Emoji Fingerprints for both P2P and Conference Calls, and many other improvements
And of course, Telegram decided to add Protocol V14 right in the middle of it all, as if a new protocol shows up every second. The funny part is that TDesktop doesn't even support it yet, so there's no real rush
I'm still working on it, but I think I'll ship Protocol V14 in the next major update, there's a lot to get through
Please open Telegram to view this post
VIEW IN TELEGRAM
๐2๐1
As an Italian woman, I cannot claim to know everything about India's history, but I know enough to understand the significance of the struggles India faced, including especially the repression under British rule....
Today is an important day for our Indian users and community members, so Iโd like to wish everyone celebrating a very happy Independence Day
Have a wonderful day! ^^
Lauren
Co-Founder, PyTgCalls Foundation
Please open Telegram to view this post
VIEW IN TELEGRAM
20โค16
I've spent the last few days on a small side project, and it's now running around the clock at @pyrotoscope. PyRotoscope keeps a schedule of animation, streams it into a Telegram voice chat, and tells you what's on.
Everything it plays is animation made by people rather than studios. Indie shorts, web series, student thesis films. The channel posts a card for each episode as it goes on air, and a pinned guide always shows what's playing and what comes next.
Under the hood it's py-tgcalls doing the streaming, yt-dlp fetching the sources, and a bot running the schedule. It's all open, so if you want a channel of your own, take it and run it.
Repo:
https://github.com/pytgcalls/pyrotoscope
Come sit in the voice chat for a while. And if you make animation yourself, send it my way, I'd love to put it on air
Lauren
Co-Founder, PyTgCalls Foundation
Please open Telegram to view this post
VIEW IN TELEGRAM
โค4๐ฅ2