A Discord bot for listening music from a Subsonic server.
Project description
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:
- Go to the Discord Developer Portal.
- Create a new application.
- On the application go to
Bot. - Enable
Message Content Intent. - And click on
Reset Tokento get string you should put on the env variable.
How to create an invite link
- Go to the Discord Developer Portal.
- Enter your bot application.
- On the application go to
OAuth2. - Copy your
Client ID. - Go to this preconfigured Discord Permissions Calculator.
- Paste your
Client IDon the bottom. - 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
- Created with :heart: by Jorge "Kutu" Dobón Blanco.
- JmTexas19: Creator of Subrift, project forked that served as a base for Disopy.
- iGieri: Fix issue #1.
- outmaneuver: Fix issue #3.
- An May (YUR0ii): Make HTTPS optional.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51fcc71fa09728b2d13f22e00599909adbdf161db24cb00ab9838243736db450
|
|
| MD5 |
8b5140f64e6e7cf8816dc7cb8b773e6b
|
|
| BLAKE2b-256 |
23150053d28d46053a30f7938eaac12f4dabe0e81c01b087a4f72629518e9891
|
Provenance
The following attestation bundles were made for disopy-2.2.3.tar.gz:
Publisher:
publish.yml on kutu-dev/disopy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
disopy-2.2.3.tar.gz -
Subject digest:
51fcc71fa09728b2d13f22e00599909adbdf161db24cb00ab9838243736db450 - Sigstore transparency entry: 152041599
- Sigstore integration time:
-
Permalink:
kutu-dev/disopy@dee902057a3aeb904688f4952471488932a50765 -
Branch / Tag:
refs/tags/2.2.3 - Owner: https://github.com/kutu-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dee902057a3aeb904688f4952471488932a50765 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bc4cc7b44eca838b142c05bdeee70992aadd527747f90661d403dbd2c550471
|
|
| MD5 |
128d32c13781677336e6a6ed8f98b221
|
|
| BLAKE2b-256 |
f7f39b47e1555901245e4b789d5d8f583124d9b9599a3891b196eef5724ea211
|
Provenance
The following attestation bundles were made for disopy-2.2.3-py3-none-any.whl:
Publisher:
publish.yml on kutu-dev/disopy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
disopy-2.2.3-py3-none-any.whl -
Subject digest:
0bc4cc7b44eca838b142c05bdeee70992aadd527747f90661d403dbd2c550471 - Sigstore transparency entry: 152041601
- Sigstore integration time:
-
Permalink:
kutu-dev/disopy@dee902057a3aeb904688f4952471488932a50765 -
Branch / Tag:
refs/tags/2.2.3 - Owner: https://github.com/kutu-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dee902057a3aeb904688f4952471488932a50765 -
Trigger Event:
release
-
Statement type: