A Telegram UserBot to Play Audio in Voice Chats.
This is also the source code of the userbot which is being used for playing DJ/Live Sets music in VC DJ/Live Sets group.
Made with tgcalls and Pyrogram Smart Plugin
It's recommended to use tgmusicbot along with this userbot.
- Generate Pyrogram session string by running generate-pyrogram-session-string.py by yourself or through Replit
- Enable the worker after deploy the project to Heroku
Change the value of PLUGIN
variable if you want to try other voice chat
plugins.
Features
- Playlist, queue
- Loop one track when there is only one track in the playlist
- Automatically downloads audio for the first two tracks in the playlist to ensure smooth playing
- Automatically pin the current playing track
- Show current playing position of the audio
Plugin: vc.player
Commands only works in groups, userbot account itself and contacts can use any commands, all members can use common commands after the userbot join the VC
- Start the userbot, try
!ping
,!uptime
or!sysinfo
command to check if the bot was running - send
!join
to a voice chat enabled group chat from userbot account itself or its contacts, be sure to make the userbot account as group admin and give it at least the following permissions:- Delete messages
- Manage voice chats (optional)
- reply to an audio with
/play
to start playing it in the voice chat, every member of the group can use common commands such like/play
,/current
and!help
now. - check
!help
for more commands
Plugin: vc.channel
Almost same as player
plugin but commands only works in Saved Messages,
!join
takes arguments to be able to join group or channel voice chats.
Plugin: ping
and sysinfo
Commands only works for userbot account itself and its contacts.
- Python 3.6 or higher
- A Telegram API key and a Telegram account
- Choose plugins you need, install dependencies which listed above and run
pip install -U -r requirements.txt
to install Python package dependencies as well - FFmpeg
Choose one of the two methods and run the userbot with
python userbot.py
, stop with CTRL+c. The following example assume
that you were going to use vc.player
and ping
plugin, replace
api_id
, api_hash
to your own value.
Create a config.ini
file
[pyrogram]
api_id = 1234567
api_hash = 0123456789abcdef0123456789abcdef
[plugins]
root = plugins
include =
vc.player
ping
sysinfo
Replace the file content of userbot.py
from pyrogram import Client, idle
api_id = 1234567
api_hash = "0123456789abcdef0123456789abcdef"
plugins = dict(
root="plugins",
include=[
"vc.player",
"ping",
"sysinfo"
]
)
app = Client("tgvc", api_id, api_hash, plugins=plugins)
app.start()
print('>>> USERBOT STARTED')
idle()
app.stop()
print('\n>>> USERBOT STOPPED')
- Read module docstrings of plugins/ you are going to use at the beginning of the file for extra notes
AGPL-3.0-or-later
tgvc-userbot, Telegram Voice Chat Userbot
Copyright (C) 2021 Dash Eclipse
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.