2025-12-17 17:24:34 +00:00
2025-12-13 18:31:40 +00:00
2025-12-13 18:37:28 +00:00
2025-12-17 17:24:34 +00:00
2025-12-13 11:15:48 +00:00
2025-12-17 17:23:35 +00:00
2025-12-17 16:26:44 +00:00
2025-12-17 17:16:36 +00:00
2025-12-17 17:15:59 +00:00

xmpp-radio-tower

Experimental music bot for xmpp similar to discord music bots.

Working Status

  • Conversations: Works

  • Cheogram: Works

  • Monocles chat: Works

  • Monal: Works

  • Dino: Works

  • Movim: Works

Features

  • Calling the bot over any xmpp clients supporting calls

  • Shuffle playlist

  • Queue system

  • Add new songs from links yt-dlp supports

  • Search for songs (both locally and using youtube soundcloud and bandcamp)

  • Radio relaying (copies m3u8 or mp3 streams of real radios)

TODO

  • Fix a bug where if bandwith is exhausted song switches without any command (not produceable anymore?)

  • Fix the memory management (kinda fixed (?) but in return sometimes quality drops when someone is using commands)

  • Add Alastor references

  • Allow to prefer low latency over quality (ngl I prefer quality over latency)

  • Test IPv6 streaming support (seems to work with IPv6 supporting VPNs)

How to install

I do not remember most details about dependencies but I will try to make an install guide.

Dependencies

The bot highly relies on the ffmpeg binary for audio. Also having an up to date version of yt-dlp helps a lot.

Installation

Clone the projects or just copy the scripts over.

Set up the Python Environment

I have used venv since it is what I know.

python3 -m venv venv

pip install

Literally

pip install slixmpp aiortc aiohttp av mutagen yt-dlp slixmpp-omemo omemo dnspython

I am not sure if dnspython is necessary but just in case.

Create Directories

Create the folder structure for music and downloads:

mkdir -p music/downloads

Configuration

Take a look at file named config.ini in the bot folder. Edit it (every config has their descriptions near them).

Run the Bot

Manual Start

# Ensure you are in your python environment
python3 xmpp_radio_bot.py -c config.ini

Usage

The bot mostly uses OMEMO encrypted messages. You may need to "Trust" the bot's fingerprint in your client (Gajim/Conversations/Dino) for commands to work if encryption is active. Plaintext works too but I do not check it mostly since OMEMO is good anyways.

Inside the DMs with the bot (or inside the bot control muc configured) type "!help" to see how can the bot used.

Changelog

v0.1 Absolute Solver

  • Main testing version

v0.2 Branded Pens!

  • Future version
Description
Experimental music bot for xmpp similar to discord music bots
Readme GPL-3.0 152 KiB
Languages
Python 100%