A simple Discord bot that reads the currently playing track from Banshee or Rhythmbox on Linux and posts it to a Discord channel. Also includes fun/silly commands.
- Automatically posts song info (
Artist - Track) when music is playing - Supports Banshee and Rhythmbox
- Simple keyword/silly commands (easy to customize)
- Lightweight Express server for receiving updates
- Easy deployment on Railway (or any Node.js host)
- A local shell script (
bansheecheck.shorrhythmboxcheck.sh) periodically checks your music player. - The script sends the current track to the bot's web endpoint.
- The bot posts the song information to your designated Discord music channel.
- Node.js (v18 or higher)
- Discord bot token
- Linux machine with Banshee or Rhythmbox installed
Clone the repo
git clone https://github.com/calexil/BansheeBot.git
- Go to the Discord Developer Portal
- Create a new Application → Bot → Copy the Token
- Invite the bot to your server with Send Messages permission
- Edit bot.js and update the musicChannelId with your target Discord channel ID.
- Set your bot token:
export BOT_TOKEN="your_bot_token_here"
Recommended: Deploy on Railway.app (one-click from GitHub)
- Render
- Oracle Cloud
Edit bansheecheck.sh (or rhythmboxcheck.sh):
- Update the endpoint URL to match where your bot is running
- Update your username if needed
Make executable and run:
chmod +x bansheecheck.sh
./bansheecheck.sh
Now play music — it should start posting to Discord!
See full list in Commands.md
Some examples:
testgood bot / bad botbest girl?!help
BansheeBot/
├── bot.js # Main Discord + Express bot
├── bansheecheck.sh # Music checker for Banshee
├── rhythmboxcheck.sh # Music checker for Rhythmbox
├── Commands.md
├── package.json
└── public/
-
Bot not posting songs? → Check the shell script URL, channel ID, and permissions.
-
Login issues? → Make sure BOT_TOKEN environment variable is set correctly.
-
Too many posts? → Adjust sleep time in the shell script.