Pyrogram bot to automate streaming music in voice chats

Related tags

Audiovcpb
Overview

Pyrogram bot to automate streaming music in voice chats

Help

If you face an error, want to discuss this project or get support for it, join it's group on Telegram.

Requirements

  • A computer (a Debian-based Linux recommmended).
  • An alt Telegram account.
  • Bot token from @BotFather.
  • API ID & hash from my.telegram.org.
  • Python 3.6 or newer & latest version of pip.
  • MPV (and libmpv).
  • A software to forward audio to tdesktop (Linux: pulseaudio, Windows: voicemeeter).

Deploying

The code

Cloning

    git clone https://github.com/rojserbest/vcpb.git vcpb && cd vcpb

Configuring

CLI args (when running bot.py)

Example:

python3 bot.py \
--api-id 1 \
--api-hash abcdef1234 \
--token 1234567890:ABCDEF \
--sudo-users 111111_22222_33333 \
--mongo-db-uri mongodb+srv://user:[email protected]/vcpb \
--group -1001876543112 \
--dur-limit 10 \
--lang en
Config file

Copy config/sample_config.py to config/config.py and make it use your credentials (you can also give those as an arg when running bot.py):

API_ID int: your api id from my.telegram.org

API_HASH str: your api hash from my.telegram.org TOKEN str: your bot token from @BotFather

SUDO_USERS list(int): a list of user ids which can pause, skip and change volume

MONGO_DB_URI str: your MongoDB URI (you can get one for free in their official website, sign up, create a cluster and a database named "vcpb")

GROUP int: the id of the group where your bot plays (not required if both USERS_MUST_JOIN and LOG are false)

USERS_MUST_JOIN bool: if true, only users which are in the group can use the bot

LOG bool: if true, now playing messages will be sent to the group

LANG str: your bot language, choose an available language code in strings/

DUR_LIMIT int: max video duration in minutes for downloads

PIP requirements

pip(3) install -U -r requirements.txt

Running

โš ๏ธ Warning for Linux users: don't run any command as root (except those which require it), else you might face bulky problems. You can create a user with adduser music and add it to sudoers using sudo usermod -aG sudo music.

โ„น๏ธ The volume command isn't working on Windows.

On Linux VPS

These are apt package manager instructions but you can install the required packages with other package managers too.

  1. Update and upgrade apt: sudo apt update && sudo apt upgrade -y

  2. Install requirements: sudo apt install python3-pip xrdp pulseaudio mpv libmpv-dev screen -y

  3. Download tdesktop: cd ~ && wget https://telegram.org/dl/desktop/linux -O tdesktop.tar.xz && tar -xf tdesktop.tar.xz && rm tdesktop.tar.xz

  4. Configure XRDP session to only start Telegram: echo "~/Telegram/Telegram" >~/.xsession

  5. Enable pulseaudio service (you can skip this step if you don't have systemctl): systemctl --user enable pulseaudio

  6. Restart the machine: sudo reboot

  7. Start pulseaudio (you can skip this step if you did step 5): pulseaudio --start

  8. Go back to directory of the clone and load a pulseaudio null sink, by running: bash pa.sh

  9. Make a screen for the bot and attach to it: screen -S vcbot

  10. Run the bot: python(3) bot.py

  11. Detattach from the screen by pressing CTRL+A then CTRL+D.

  12. Open a remote desktop client and login to your user.

  13. You should see the Telegram GUI, just login, join a voice chat and set VoiceChatPyroBot as your microphone.

  14. Done, you can now start sending commands to your bot and it'll stream in the voice chat.

On Linux desktop

These are apt package manager instructions but you can install the required packages with other package managers too.

  1. Update and upgrade apt: sudo apt update && sudo apt upgrade -y

  2. Install requirements: sudo apt install pulseaudio mpv libmpv-dev pavucontrol screen -y

  3. If you have Telegram skip this step, otherwise download it here.

  4. Go to directory of the clone and load a pulseaudio null sink, by running: bash pa.sh

  5. Make a screen for the bot and attach to it: screen -S vcbot

  6. Run the bot: python(3) bot.py

  7. Detattach from the screen by pressing CTRL+A then CTRL+D.

  8. Open Telegram, join a voice chat and set VoiceChatPyroBot as your microphone.

  9. Done, you can now start sending commands to your bot and it'll stream in the voice chat.

On Windows 10 PC

  1. Download Voicemeeter here and install it.

  2. Download virtual audio cable here and install it.

  3. Reboot.

  4. Right click the speaker account in your taskbar, then click playback.

  5. Set Voicemeeter input and Voicemeeter output as default and click OK.

  6. Download MPV.

  7. Start Voicemeeter engine.

  8. Run the bot: python bot.py

  9. Open Telegram, join a voice chat and set Voicemeeter input as your microphone.

  10. Done, you can now start sending commands to your bot and it'll stream in the voice chat.

Usage

Streaming YouTube videos

  1. Open YouTube in your browser, and search for a song.
  2. Copy the complete video URL to clipboard and send it to your bot in private.

Method 2

  1. Enable inline for you bot in @BotFather.
  2. In your bot's private, type @usernameOfYourBot followed by your YouTube search query, and click a result.

Authors & Acknowledgment

Inspiration

Development & contribution

A Python library and tools AUCTUS A6 based radios.

A Python library and tools AUCTUS A6 based radios.

Jonathan Hart 6 Nov 23, 2022
Cobra is a highly-accurate and lightweight voice activity detection (VAD) engine.

On-device voice activity detection (VAD) powered by deep learning.

Picovoice 88 Dec 16, 2022
A lightweight yet powerful audio-to-MIDI converter with pitch bend detection

Basic Pitch is a Python library for Automatic Music Transcription (AMT), using lightweight neural network developed by Spotify's Audio Intelligence La

Spotify 1.4k Jan 01, 2023
๐Ÿ“บHeadlessๅ…จ่‡ชๅŠจB็ซ™็›ดๆ’ญๅฝ•ๆ’ญใ€ๅˆ‡็‰‡ใ€ไธŠไผ ไธ€ไฝ“ๅทฅๅ…ท

DDRecorder Headlessๅ…จ่‡ชๅŠจB็ซ™็›ดๆ’ญๅฝ•ๆ’ญใ€ๅˆ‡็‰‡ใ€ไธŠไผ ไธ€ไฝ“ๅทฅๅ…ท ๆ„Ÿ่ฐข FortuneDayssss/BilibiliUploader ๅฎ‰่ฃ…ๆŒ‡ๅ—๏ผˆWindows๏ผ‰ ๅœจReleaseไธ‹่ฝฝzipๅŒ…่งฃๅŽ‹ใ€‚ ไฟฎๆ”น้…็ฝฎๆ–‡ไปถconfig.json ๅŒๅ‡ป่ฟ่กŒDDRecorder.exe ๏ผˆ่ฟ™ๅฐ†ไฝฟ็”จco

322 Dec 27, 2022
python script for getting mp3 files from yaoutube playlist

mp3-from-youtube-playlist python script for getting mp3 files from youtube playlist. Do your non-tech brown relatives ask you for downloading music fr

Shuhan Mirza 7 Oct 19, 2022
Welcome to Nexus. Your personal virtual assistant

AI Voice Assistant Welcome to Nexus voice assistant Description Have you ever heard of voice assistants like Cortana, Siri, Google assistant, and Alex

Mustafah Zacs 1 Jan 10, 2022
Xbot-Music - Bot Play Music and Video in Voice Chat Group Telegram

XBOT-MUSIC A Telegram Music+video Bot written in Python using Pyrogram and Py-Tg

Fariz 2 Jan 20, 2022
Stream Music ๐ŸŽต ๐˜ผ ๐™—๐™ค๐™ฉ ๐™ฉ๐™๐™–๐™ฉ ๐™˜๐™–๐™ฃ ๐™ฅ๐™ก๐™–๐™ฎ ๐™ข๐™ช๐™จ๐™ž๐™˜ ๐™ค๐™ฃ ๐™๐™š๐™ก๐™š๐™œ๐™ง๐™–๐™ข ๐™‚๐™ง๐™ค๐™ช๐™ฅ ๐™–๐™ฃ๐™™ ๐˜พ๐™๐™–๐™ฃ๐™ฃ๐™š๐™ก ๐™‘๐™ค๐™ž๐™˜๐™š ๐˜พ๐™๐™–๐™ฉ๐™จ ๐˜ผ๐™ซ๐™–๐™ž๐™ก?

Stream Music ๐ŸŽต ๐˜ผ ๐™—๐™ค๐™ฉ ๐™ฉ๐™๐™–๐™ฉ ๐™˜๐™–๐™ฃ ๐™ฅ๐™ก๐™–๐™ฎ ๐™ข๐™ช๐™จ๐™ž๐™˜ ๐™ค๐™ฃ ๐™๐™š๐™ก๐™š๐™œ๐™ง๐™–๐™ข ๐™‚๐™ง๐™ค๐™ช๐™ฅ ๐™–๐™ฃ๐™™ ๐˜พ๐™๐™–๐™ฃ๐™ฃ๐™š๐™ก ๐™‘๐™ค๐™ž๐™˜๐™š ๐˜พ๐™๐™–๐™ฉ๐™จ ๐˜ผ๐™ซ๐™–๐™ž๐™ก?

Sadew Jayasekara 15 Nov 12, 2022
Pianote - An application that helps musicians practice piano ear training

Pianote Pianote is an application that helps musicians practice piano ear traini

3 Aug 17, 2022
Supysonic is a Python implementation of the Subsonic server API.

Supysonic Supysonic is a Python implementation of the Subsonic server API. Current supported features are: browsing (by folders or tags) streaming of

Alban 228 Nov 19, 2022
An Amazon Music client for Linux (unpretentious)

Amusiz An Amazon Music client for Linux (unpretentious) โ†—๏ธ Install You can install Amusiz in multiple ways, choose your favorite. ๐Ÿš€ AppImage Here you

Mirko Brombin 25 Nov 08, 2022
Bot Music Pintar. Created by Rio

๐ŸŽถ Rio Music ๐ŸŽถ Kalo Fork Star Ya Bang Hehehe Requirements ๐Ÿ“ FFmpeg NodeJS nodesource.com Python 3.8+ or 3.7 PyTgCalls Generate String Using Replit โคต

RioProjectX 7 Jun 15, 2022
Spotify Song Recommendation Program

Spotify-Song-Recommendation-Program Made by Esra Nur ร–zรผm Written in Python The aim of this project was to build a recommendation system that recommen

esra nur รถzรผm 1 Jun 30, 2022
Jarvis From Basic to Advance - make a voice assistant similar to JARVIS (in iron man movie)

JARVIS (Basic to Advance) This was my attempt to make a voice assistant similar to JARVIS (in iron man movie) Let's be honest, it's not as intelligent

codesempai 17 Dec 25, 2022
This library provides common speech features for ASR including MFCCs and filterbank energies.

python_speech_features This library provides common speech features for ASR including MFCCs and filterbank energies. If you are not sure what MFCCs ar

James Lyons 2.2k Jan 04, 2023
SU Music Player โ€” The first open-source PyTgCalls based Pyrogram bot to play music in voice chats

SU Music Player โ€” The first open-source PyTgCalls based Pyrogram bot to play music in voice chats Note Neither this, or PyTgCalls are fully

SU Projects 58 Jan 02, 2023
Speech recognition module for Python, supporting several engines and APIs, online and offline.

SpeechRecognition Library for performing speech recognition, with support for several engines and APIs, online and offline. Speech recognition engine/

Anthony Zhang 6.7k Jan 08, 2023
Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs.

vog_oracles Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs. Huge thanks to mzucker on GitHub for the note detection cod

19 Sep 29, 2022
An AI for Music Generation

An AI for Music Generation

Hao-Wen Dong 1.3k Dec 31, 2022
This Is Telegram Music UserBot To Play Music Without Being Admin

This Is Telegram Music UserBot To Play Music Without Being Admin

Krishna Kumar 36 Sep 13, 2022