Repository navigation
Expand file tree
/
Copy pathexample.env
More file actions
127 lines (103 loc) · 4.9 KB
/
Copy pathexample.env
File metadata and controls
127 lines (103 loc) · 4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# ============ Required ============
# Telegram API credentials from https://my.telegram.org
API_ID=
API_HASH=
# Bot token from @BotFather
BOT_TOKEN=
# Your bot's username, without @
BOT_USERNAME=
# Display name used in messages
BOT_NAME=Music Bot
# Pyrogram session string for the ASSISTANT account — the user account that
# joins the voice chat and streams. Use a dedicated account (NOT one a human
# listens with: Telegram allows one voice-chat connection per account).
# Generate it with gen_session.py (see README).
SESSION_NAME=
# Space-separated numeric Telegram user ids with sudo rights
SUDO_USERS=
# ============ Optional ============
# Max track length in minutes
DURATION_LIMIT=240
# Downloads cache cap in MB (replays of the same Telegram file are instant while
# cached). Pruned oldest-first after each stream ends; 0 = delete after playing.
DOWNLOADS_CACHE_LIMIT_MB=4096
# Local media library (browse with /library, play by name with /lplay).
# LIBRARY_HOST_DIR : host folder to mount read-only (docker-compose). Leave the
# LIBRARY_* vars unset to disable the feature entirely.
# LIBRARY_ROOT : the in-container mount path (keep as /library).
# LIBRARY_CATEGORIES: optional comma-separated allowlist of top-level folders to
# expose; empty = show every subfolder.
#LIBRARY_HOST_DIR=/path/to/your/videos
#LIBRARY_ROOT=/library
#LIBRARY_CATEGORIES=movies,shows,cartoons
# Shown in the rare "assistant is banned" message; the assistant's @username without @
ASSISTANT_NAME=
# Your @username (without @) — used for the "info" button and the /alive "Master" link.
# Leave empty to hide.
OWNER_NAME=
# Display name for the /alive "Master" line. Leave empty to hide.
ALIVE_NAME=
# Support group / updates channel for the buttons. A public username without @
# (e.g. mygroup) or an invite hash with a leading + (e.g. +AbCdEfGh123).
# Leave empty to hide the buttons.
GROUP_SUPPORT=
UPDATES_CHANNEL=
# Card images (URL or local file path). Defaults to a bundled placeholder.
# ALIVE_IMG - /alive card
# IMG_1..4 - queue/now-playing cards
#ALIVE_IMG=
#IMG_1=
#IMG_2=
#IMG_3=
#IMG_4=
# Your repo's git URL — shown as the "Source Code" button on /start. Empty to hide.
#UPSTREAM_REPO=
# Command prefixes (space separated)
#COMMAND_PREFIXES=/ ! .
# Optional proxy for reaching Telegram (scheme: socks5/socks4/http).
# Note: a SOCKS proxy carries only the signaling, not the voice UDP — for
# networks where Telegram is fully filtered, use a system-level VPN instead.
#PROXY_SCHEME=socks5
#PROXY_HOST=
#PROXY_PORT=1080
#PROXY_USER=
#PROXY_PASS=
# Hardware-accelerated transcoding: "" = CPU (libx264), "vaapi" = Intel/AMD GPU.
# For vaapi: copy docker-compose.override.example.yml -> docker-compose.override.yml
# (mounts /dev/dri + sets the VA driver), then set this to vaapi.
#TRANSCODE_HWACCEL=vaapi
# Internet-radio presets for /radio (replaces the built-in list). Name=URL pairs,
# comma-separated. .pls/.m3u playlists are auto-resolved to the real stream.
#RADIO_STATIONS=Groove Salad=https://somafm.com/groovesalad.pls,FIP=https://icecast.radiofrance.fr/fip-midfi.mp3
# Card image shown while streaming radio (URL or file path). Defaults to IMG_1.
#RADIO_IMG=
# Leave the voice chat after N minutes with no human listeners (0 = never).
#IDLE_LEAVE_MINUTES=10
# SponsorBlock: comma-separated categories yt-dlp should cut from YouTube
# downloads. Empty = off. For music, "sponsor,selfpromo,music_offtopic" skips
# sponsor reads and non-music intros/outros. Adds a little download time.
# Categories: sponsor, selfpromo, interaction, intro, outro, preview, music_offtopic
#SPONSORBLOCK_REMOVE=sponsor,selfpromo,music_offtopic
# yt-dlp cookies — Netscape-format cookies.txt for sites that require login
# (age-gated, members-only, etc.). Export from your browser (e.g. with the
# "cookies.txt" extension). Empty = no cookies.
# Inside Docker, this should be the container path. The host path is set via
# COOKIES_HOST_PATH in docker-compose.yml.
#COOKIES_FILE=/cookies/cookies.txt
#COOKIES_HOST_PATH=/path/to/cookies.txt
# yt-dlp proxy — proxy URL for non-YouTube downloads (geo-restricted sites).
# socks5://user:pass@host:1080 or http://host:8080. Empty = direct.
#PROXY_URL=socks5://127.0.0.1:1080
# Custom extractor plugins: a directory of .py resolvers (match() + resolve())
# for sites yt-dlp can't handle; they run before yt-dlp. In Docker the mounted
# ./plugins dir is used (PLUGIN_DIR=/plugins, set in docker-compose). See
# examples/plugin_example.py. ENABLE_PLUGINS=false ignores the dir.
#PLUGIN_DIR=
#ENABLE_PLUGINS=true
# Headless-browser fallback: when yt-dlp can't extract a non-YouTube page (its
# player builds the stream URL in JavaScript), load it in headless Chromium,
# capture the media request and stream that. Docker needs Chromium in the image
# — build with INSTALL_BROWSER=true (adds ~450 MB); without it this no-ops.
#INSTALL_BROWSER=false
#ENABLE_BROWSER_FALLBACK=true
#BROWSER_FALLBACK_TIMEOUT=45