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

Tradutor de um arquivo MIDI para ser usado em um simulador RISC-V(RARS)

Tradutor_MIDI-RISC-V Tradutor de um arquivo MIDI para ser usado em um simulador RISC-V(RARS) *O resultado sai com essa formatação: nota,duração,nota,d

Gabriel B. G. 4 Sep 02, 2022
Stevan KZ 1 Oct 27, 2021
ᴀ ʙᴏᴛ ᴛʜᴀᴛ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜꜱɪᴄ ɪɴ ᴛᴇʟᴇɢʀᴀᴍ ɢʀᴏᴜᴘ ᴏɴ ᴠᴏɪᴄᴇ ᴄᴀʟʟ

GJ516 LOVER'S ııllıllı ♥️ ➤⃝Gᴊ516_ᴍᴜꜱɪᴄ_ʙᴏᴛ ♥️ ıllıllı ᴀ ʙᴏᴛ ᴛʜᴀᴛ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜꜱɪᴄ ɪɴ ᴛᴇʟᴇɢʀᴀᴍ ɢʀᴏᴜᴘ ᴏɴ ᴠᴏɪᴄᴇ ᴄᴀʟʟ Requirements 📝 FFmpeg NodeJS nodesou

1 Nov 22, 2021
TwitterMusicBot - A Twitter bot with Spotify integration.

A Twitter Music Bot 🤖 🎵 🎶 I created this project to learn more about APIs, so it only works for student purposes. Initially, delving into the Spoti

Gustavo Oliveira 2 Jan 02, 2022
music library manager and MusicBrainz tagger

beets Beets is the media library management system for obsessive music geeks. The purpose of beets is to get your music collection right once and for

beetbox 11.3k Dec 31, 2022
Telegram Voice-Chat Bot Written In Python Using Pyrogram.

Telegram Voice-Chat Bot Telegram Voice-Chat Bot To Play Music From Various Sources In Your Group Support All linux based os. Windows Mac Diagram Requi

TheHamkerCat 314 Dec 29, 2022
An 8D music player made to enjoy Halloween this year!🤘

HAPPY HALLOWEEN buddy! Split Player Hello There! Welcome to SplitPlayer... Supposed To Be A 8DPlayer.... You Decide.... It can play the ordinary audio

Akshat Kumar Singh 1 Nov 04, 2021
pedalboard is a Python library for adding effects to audio.

pedalboard is a Python library for adding effects to audio. It supports a number of common audio effects out of the box, and also allows the use of VST3® and Audio Unit plugin formats for third-party

Spotify 3.9k Jan 02, 2023
Extract the songs from your osu! libary into proper mp3 form, complete with metadata and album art!

osu-Extract Extract the songs from your osu! libary into proper mp3 form, complete with metadata and album art! Requirements python3 mutagen pillow Us

William Carter 2 Mar 09, 2022
In this project we can see how we can generate automatic music using character RNN.

Automatic Music Genaration Table of Contents Project Description Approach towards the problem Limitations Libraries Used Summary Applications Referenc

Pronay Ghosh 2 May 27, 2022
:speech_balloon: SpeechPy - A Library for Speech Processing and Recognition: http://speechpy.readthedocs.io/en/latest/

SpeechPy Official Project Documentation Table of Contents Documentation Which Python versions are supported Citation How to Install? Local Installatio

Amirsina Torfi 870 Dec 27, 2022
:notes: Cross-platform music player

Exaile Exaile is a music player with a simple interface and powerful music management capabilities. Features include automatic fetching of album art,

Exaile 327 Dec 19, 2022
nicfit 425 Jan 01, 2023
Manipulate audio with a simple and easy high level interface

Pydub Pydub lets you do stuff to audio in a way that isn't stupid. Stuff you might be looking for: Installing Pydub API Documentation Dependencies Pla

James Robert 6.6k Jan 01, 2023
A Music Player Bot for Discord Servers

A Music Player Bot for Discord Servers

Halil Acar 2 Oct 25, 2021
PyAbsorp is a python module that has the main focus to help estimate the Sound Absorption Coefficient.

This is a package developed to be use to find the Sound Absorption Coefficient through some implemented models, like Biot-Allard, Johnson-Champoux and

Michael Markus Ackermann 8 Oct 19, 2022
IDing the songs played on the do you radio show

IDing the songs played on the do you radio show

Rasmus Jones 36 Nov 15, 2022
Algorithmic and AI MIDI Drums Generator Implementation

Algorithmic and AI MIDI Drums Generator Implementation

Tegridy Code 8 Dec 30, 2022
A voice based calculator by using termux api in Android

termux_voice_calculator This is. A voice based calculator by using termux api in Android Instagram account 👉 👈 Requirements and installation Downloa

ʕ´•ᴥ•`ʔ╠ŞĦỮβĦa̷m̷╣ʕ´•ᴥ•`ʔ 2 Apr 29, 2022
This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz

VcPlayer This is an OverPowered Vc Music Player! Will work for you and play music in Voice Chatz Telegram Voice-Chat Bot [PyTGCalls] ⇝ Requirements ⇜

1 Dec 20, 2021