A powerful Discord selfbot for streaming videos and live content to Discord voice channels.
- ๐ Stream videos from a local folder
- ๐ฌ Stream and search YouTube videos by title
- ๐ Stream YouTube videos/live streams by link
- ๐ Stream from arbitrary links (video files, live streams, Twitch, etc.)
- โก Playback controls: play, stop
- ๐ Video library management
This project is hosted on GitHub.
- Clone the repository:
git clone https://github.com/ysdragon/StreamBot
- Install dependencies:
bun install
- Configure environment:
- Rename
.env.example
to.env
- Update configuration values
- Rename
Start with Bun:
bun run start
Start with Node.js:
bun run build
bun run start:node
- Create a directory and navigate to it:
mkdir streambot && cd streambot
- Download the compose file:
wget https://raw.githubusercontent.com/ysdragon/StreamBot/main/docker-compose.yml
-
Configure environment variables in
docker-compose.yml
-
Launch container:
docker compose up -d
- Download WARP compose file:
wget https://raw.githubusercontent.com/ysdragon/StreamBot/main/docker-compose-warp.yml
-
Configure
docker-compose-warp.yml
and add your WARP license key -
Launch with WARP:
docker compose -f docker-compose-warp.yml up -d
Note
The basic video server will not work if you use WARP.
Command | Description |
---|---|
play <video> |
Play local video |
playlink <url> |
Stream from URL/YouTube/Twitch |
ytplay <query> |
Play YouTube video |
ytsearch <query> |
Search YouTube |
stop |
Stop playback |
list |
Show video library |
refresh |
Update video list |
status |
Show playback status |
preview <video> |
Generate thumbnails |
help |
Show help |
Configuration is done via .env
:
# Selfbot options
TOKEN = "" # Your Discord self-bot token
PREFIX = "$" # The prefix used to trigger your self-bot commands
GUILD_ID = "" # The ID of the Discord server your self-bot will be running on
COMMAND_CHANNEL_ID = "" # The ID of the Discord channel where your self-bot will respond to commands
VIDEO_CHANNEL_ID = "" # The ID of the Discord voice/video channel where your self-bot will stream videos
# General options
VIDEOS_DIR = "./videos" # The local path where you store video files
PREVIEW_CACHE_DIR = "./tmp/preview-cache" # The local path where your self-bot will cache video preview thumbnails
# Stream options
STREAM_RESPECT_VIDEO_PARAMS = "false" # This option is used to respect video parameters such as width, height, fps, bitrate, and max bitrate.
STREAM_WIDTH = "1280" # The width of the video stream in pixels
STREAM_HEIGHT = "720" # The height of the video stream in pixels
STREAM_FPS = "30" # The frames per second (FPS) of the video stream
STREAM_BITRATE_KBPS = "2000" # The bitrate of the video stream in kilobits per second (Kbps)
STREAM_MAX_BITRATE_KBPS = "2500" # The maximum bitrate of the video stream in kilobits per second (Kbps)
STREAM_HARDWARE_ACCELERATION = "false" # Whether to use hardware acceleration for video decoding, set to "true" to enable, "false" to disable
STREAM_VIDEO_CODEC = "H264" # The video codec to use for the stream, can be "H264" or "H265" or "VP8"
# STREAM_H26X_PRESET: Determines the encoding preset for H26x video streams.
# If the STREAM_H26X_PRESET environment variable is set, it parses the value
# using the parsePreset function. If not set, it defaults to 'ultrafast' for
# optimal encoding speed. This preset is only applicable when the codec is
# H26x; otherwise, it should be disabled or ignored.
# Available presets: "ultrafast", "superfast", "veryfast", "faster",
# "fast", "medium", "slow", "slower", "veryslow".
STREAM_H26X_PRESET = "ultrafast"
# Videos server options
SERVER_ENABLED = "false" # Whether to enable the built-in video server
SERVER_USERNAME = "admin" # The username for the video server's admin interface
SERVER_PASSWORD = "admin" # The password for the video server's admin interface
SERVER_PORT = "8080" # The port number the video server will listen on
Check the Get token wiki
An optional basic HTTP server can be enabled to manage the video library:
- List videos
- Upload videos
- Delete videos
- Generate video preview thumbnails
- Adding ytsearch and ytplay commands
Contributions are welcome! Feel free to:
- ๐ Report bugs via issues
- ๐ง Submit pull requests
- ๐ก Suggest new features
This bot may violate Discord's ToS. Use at your own risk.
ุฃุชุจุฑุฃ ู ู ุฃู ุงุณุชุฎุฏุงู ุบูุฑ ุฃุฎูุงูู ููุฐุง ุงูู ุดุฑูุน ุฃู ุงู ุงููู.
Licensed under MIT License. See LICENSE for details.