Desktop application for streaming local audio to a Discord voice channel through a bot account.
This project is a fork/continuation of the original BinkanSalaryman/Discord-Audio-Stream-Bot. The original repository no longer appears to be maintained; this version keeps the project usable with newer Java/JDA/Discord changes and adds packaging, stability, and UI improvements.
- Stream a local audio source to Discord.
- Select a microphone or virtual audio device, such as VB-Audio Virtual Cable.
- Desktop UI for configuring the bot token, audio devices, and voice channels.
- Maintenance tab showing the connected voice channel, permissions, auto-join settings, ignored audio users, and audio restart controls.
- Discord slash commands for joining/leaving voice, auto-join, follow-audio, muting listened users, and restarting the audio pipeline.
- Native Windows, Linux, and macOS builds with a bundled Java runtime.
The recommended installation method is to download the latest GitHub release.
The native-* packages include their own Java runtime, so users do not need to install Java 17 manually.
Packaged releases check GitHub for updates when the application starts. If a newer release is available, the app downloads the matching native package and asks to restart so the update can be installed.
- Download the package for your operating system:
Discord Audio Stream Bot-native-windows-x64.zipDiscord Audio Stream Bot-native-linux-x64.zipDiscord Audio Stream Bot-native-macos-x64.zip
- Extract the archive.
- Launch the packaged application:
- Windows:
Discord Audio Stream Bot.exe - Linux: launcher inside the
bindirectory - macOS:
.appapplication bundle
- Windows:
- Create an application in the Discord Developer Portal.
- In the Bot tab, create a bot and copy its token.
- Enable
SERVER MEMBERS INTENT, which is required for some permission checks. - Launch Discord Audio Stream Bot.
- In
Settings, paste the bot token. - In
Home, connect the bot. - In
Maintenance, invite the bot to a server if needed.
To stream audio to Discord:
- Connect the bot from the
Hometab. - In
Settings, unmute the bot microphone. - Select the input audio device.
- Join a voice or stage channel with
/joinor from theMaintenancetab.
To stream audio from an application or game, use a virtual audio cable such as VB-Audio Virtual Cable, then select its output as the recording device in this app.
/join- Join a voice or stage channel./leave- Leave the current voice channel./leave-all- Leave all connected voice channels. Bot owner only./autojoin- Configure the channel to join automatically./follow-audio- Follow a user across voice channels./mute-audio- Mute/unmute specific users for the bot's audio listener./restart-audio- Restart the audio pipeline for the current server./restart-audio all:true- Restart all audio pipelines. Bot owner only./bind- Restrict which text channels can be used for bot commands./status,/activity,/stage,/about,/invite,/stop- General bot management commands.
If audio becomes unstable or gets stuck:
- Use the
Restart audiobutton in theMaintenancetab. - Or run the Discord command
/restart-audio. - Check that the correct input device is selected in
Settings. - If you are using a virtual audio cable, make sure the source application is sending audio to the cable input.
Logs are written to logs/app.log and are appended instead of overwritten on startup. Archived logs are rotated by date and size.
A full JDK is required to create native packages because the build uses jpackage.
On Windows:
.\gradlew.bat test nativeImageZipOn Linux or macOS:
./gradlew test nativeImageZipGenerated archives are written to:
build/distributions/
The GitHub Actions workflow builds native Windows, Linux, and macOS packages when a Git tag is pushed.
Example:
git tag v1.0.2
git push origin v1.0.2The GitHub release is created automatically and the native zip files are uploaded to it.
Original project: BinkanSalaryman/Discord-Audio-Stream-Bot
This repository is an unofficial continuation intended to keep the application usable with current Java, JDA, and Discord behavior.