Skip to content

A Discord bot for listening music from a Subsonic server.

License

Notifications You must be signed in to change notification settings

kutu-dev/disopy

Repository files navigation

Disopy

justforfunnoreally.dev badge PyPI - Version PyPI - Python Version

A Discord bot for listening music from a Subsonic server.

Setup

The only external dependencies needed are:

  • Python 3.13.0 or higher.
  • ffmpeg.
  • libopus.
  • libffi-devel.

Then just install the bot from PyPI with pipx:

pipx install disopy

Or directy with pip:

python3 -m pip install disopy

Finally generate a basic config file:

disopy --generate-config

It will be located at ${XDG_CONFIG_DIR}/disopy/config.toml (in most cases $HOME/.config/disopy/config.toml), remember to edit it with your configuration values.

Docker

There is an official Docker container with name ghcr.io/kutu-dev/disopy. An example compose file is also provided.

Running the bot

The bot needs two environment variables:

DISOPY_SUBSONIC_PASSWORD

The password to be send to the Subsonic REST API. Usually it'll be the same that you use to login in the WebUI of your Subsonic compatible server.

DISOPY_DISCORD_TOKEN

The token to be used when authenticating to the Discord API. To set up a bot on Discord follow this tutorial:

  1. Go to the Discord Developer Portal.
  2. Create a new application.
  3. On the application go to Bot.
  4. Enable Message Content Intent.
  5. And click on Reset Token to get string you should put on the env variable.

How to create an invite link

  1. Go to the Discord Developer Portal.
  2. Enter your bot application.
  3. On the application go to OAuth2.
  4. Copy your Client ID.
  5. Go to this preconfigured Discord Permissions Calculator.
  6. Paste your Client ID on the bottom.
  7. Copy and share your invite link at the bottom of the web!

And then just start the bot!

DISOPY_SUBSONIC_PASSWORD=foo DISOPY_DISCORD_TOKEN=bar disopy

Contributing

If you are interested in fixing bugs or adding new features please check the contributing guide.

Acknowledgements