Skip to content

Deivu/Ibuki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ibuki

Standalone Discord audio sending node written in Rust

Artwork from Azur Lane

Features

  • 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

Sources

  • Youtube
    • Support is available via RustyPipe, and Ytdlp support will be added in future
  • Deezer
    • Only search is supported dzisrc: dzisearch:. Link loading is wip
  • 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

Downloads

  • 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
  • Docker support will come in future

Contributing

  • 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

Configuration

  • 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, and httpConfig can be disabled by removing them from the json. Here is an example below if we only want to enable httpConfig
    • 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

Made with ❤ by @ichimakase (Saya)

The Shipgirl Project

About

Standalone Discord audio sending node

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages