Skip to main content

A Discord bot for listening music from a Subsonic server.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

disopy-2.2.3.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

disopy-2.2.3-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file disopy-2.2.3.tar.gz.

File metadata

  • Download URL: disopy-2.2.3.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for disopy-2.2.3.tar.gz
Algorithm Hash digest
SHA256 51fcc71fa09728b2d13f22e00599909adbdf161db24cb00ab9838243736db450
MD5 8b5140f64e6e7cf8816dc7cb8b773e6b
BLAKE2b-256 23150053d28d46053a30f7938eaac12f4dabe0e81c01b087a4f72629518e9891

See more details on using hashes here.

Provenance

The following attestation bundles were made for disopy-2.2.3.tar.gz:

Publisher: publish.yml on kutu-dev/disopy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disopy-2.2.3-py3-none-any.whl.

File metadata

  • Download URL: disopy-2.2.3-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for disopy-2.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0bc4cc7b44eca838b142c05bdeee70992aadd527747f90661d403dbd2c550471
MD5 128d32c13781677336e6a6ed8f98b221
BLAKE2b-256 f7f39b47e1555901245e4b789d5d8f583124d9b9599a3891b196eef5724ea211

See more details on using hashes here.

Provenance

The following attestation bundles were made for disopy-2.2.3-py3-none-any.whl:

Publisher: publish.yml on kutu-dev/disopy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page