Standalone Discord audio sending node written in Rust
Artwork from Azur Lane
-
Music
- Playback
- Seek
- Pause/Resume
- Volume
- Filters
- Filters support may take time (a lot of time) due to Songbird not supporting it means I need to implement it from scratch
- If you are willing to implement this however, feel free and open a PR once you are able
-
Websocket
- Connect
- Disconnect
- Resumes
-
Rest
- Get Player
- Update Player
- Delete Player
- Update Session
- Used to configure resuming capabilities
- Decode
- Encode
-
Client Support
- Any client that has support for Lavalink v4 will work. Do note that only the endpoints I mentioned in Rest part of this readme are supported, means other endpoints will return 404
- One example client that has support for Lavalink v4 is Shoukaku and will work as a drop in replacement
-
Cases you may want to try Ibuki
- You want something that runs natively on your system without additional overhead
- Youtube
- Support is available via
RustyPipe
, andYtdlp
support will be added in future
- Support is available via
- Deezer
- Only search is supported
dzisrc:
dzisearch:
. Link loading is wip
- Only search is supported
- Soundcloud
- Http
Support for more sources will come in future as I free more time to work on this project. Feel free to open a PR if you want to implement a new source
- Keep in mind that Ibuki is in its alpha state, and for any users that wants to try it is welcome to do so. For issues, please open an issue in Issues Tab
- Windows Download: x86_64-pc-windows-msvc
- Linux Download: x86_64-unknown-linux-gnu
- These downloads are directly linked from Github Actions latest run. You can always build the project if you don't want to download the binaries
- Docker support will come in future
- The dev enviroment used in this project is
- Windows
- Rust toolchain:
nightly-x86_64-pc-windows-msvc
- Cmake:
3.31.7
- This should enable you to fork, compile and test the project before opening a PR
- Just put a
config.json
beside the executable - An example config file is available at example-config.json or below
{
"port": 8080,
"address": "0.0.0.0",
"authorization": "heavy-cruiser-ibuki",
"playerUpdateSecs": 30,
"statusUpdateSecs": 10,
"deezerConfig": {
"decryptKey": "your-decrypt-key",
"arl": "your-arl-token"
},
"youtubeConfig": {
"usePoToken": true,
"useOauth": false,
"cookies": "your-cookies-string"
},
"httpConfig": {}
}
- Source configuration like
deezerConfig
,youtubeConfig
, andhttpConfig
can be disabled by removing them from the json. Here is an example below if we only want to enablehttpConfig
- Do note that httpConfig don't have additional configuration for now, hence if you want to enable it, leaving an empty object will do.
{
"port": 8080,
"address": "0.0.0.0",
"authorization": "heavy-cruiser-ibuki",
"playerUpdateSecs": 30,
"statusUpdateSecs": 10,
"httpConfig": {}
}
If you need help or ask for help or something, feel free to join our Discord Server and just ping @ichimakase (Saya)
in #general
channel or open a thread in #development-support
forum
The Shipgirl Project