➖➖➖➖
1⃣ Let's start with one of your most important projects, PyTgCalls. Tell me a something about how the idea was born, what were the obstacles to overcome, and what or who inspired you to create this library?
The PyTgCalls project was born from a concrete need and an enthusiasm shared with some friends. With the introduction of group calls on Telegram, we wanted to create something similar to Discord: the ability to play music and audio content within group calls. The main problem was that Telegram didn't provide an official API or documentation for this type of feature.
Faced with this void, I decided to start from scratch and begin studying WebRTC to understand how low-level calls worked. During this phase, I discovered that another developer, vrumger (also known as twitface), was working on an initial experimental implementation. He had already laid the foundation, but there were still several stability and connection issues, so I decided to join the project to contribute in a more structured way.
Meanwhile, there was another approach, based on the tgcalls module in Telegram Desktop, developed by MarshalX. However, we decided not to pursue that approach because it had architectural and performance limitations: the code wasn't designed for streaming, it used a very old version of WebRTC, and it wasn't optimized for intensive use.
At that point, we began to gradually build a more robust solution, starting with an initial JavaScript core (tgcallsjs), thanks also to some clarifications provided by Evgeny Nadymov on the initial implementations in the Telegram web client. The project was subsequently completely rewritten and split into two main components: NTgCalls, the C++ core, and PyTgCalls, the Python interface.
Today, the project is the result of years of study, experimentation, and collaboration, and continues to evolve thanks to the exchange of knowledge with organizations like Shiguredo, with whom we collaborate to tackle one of the most complex challenges: working with libwebrtc in C++ despite the almost total absence of official documentation.
2⃣ Besides PyTgCalls you have developed other smaller projects such as: @TestFlightTrackBot and @tgscheme... which is your favorite and why?
That's a difficult question, because I don't really have a "favorite" project, strictly speaking. Each of these works represents a different challenge and is, in some way, a little creature to which I'm attached. Furthermore, many of these projects wouldn't have reached the level of care and maturity they have today without the support and dialogue of the people around me.
That said, if I had to choose the project I'm most proud of, I'd probably say gobotapi. It's a less visible and almost "ghost" project, used by few people, but it represents a fundamental foundation. Without it, projects like tgscheme and TestFlightTrackBot probably wouldn't exist, because they're built right on top of that library. It's one of those behind-the-scenes efforts that holds everything else together.
If I had to pick the project that gave me the most trouble, I'd say TgScheme. It was the most complex and challenging from a technical standpoint, but also the one that taught me the most, especially in terms of reverse engineering and analyzing undocumented systems.
