feat: optional YouTube Music source (cookies volume + wizard step)

Adds a step_youtube wizard prompt (enable + cookies host folder), the @YOUTUBE_VOLUME@ token in templates/compose/backend.yml substituted in compose_gen, a YOUTUBE_ENABLED/cookies env block, ensure_youtube_dir in lifecycle, en/ru strings, and a README step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Senko-san
2026-06-14 14:04:49 +03:00
parent 4108121984
commit 3a63ced4d4
8 changed files with 89 additions and 1 deletions
+20
View File
@@ -39,6 +39,7 @@ CFG_ADMIN_CREATE="no"; CFG_ADMIN_USER=""; CFG_ADMIN_PASS=""
CFG_ML_URL=""
CFG_ACOUSTID_KEY=""
CFG_MUSICBRAINZ_OWNER_EMAIL=""
CFG_YOUTUBE="no"; CFG_YOUTUBE_COOKIES_HOST_PATH="./data/youtube"
CFG_JWT_SECRET=""
# ==========================================================================
@@ -195,6 +196,19 @@ step_enrichment() {
ui_input "$(t musicbrainz_email_prompt)" "" v_email_opt; CFG_MUSICBRAINZ_OWNER_EMAIL="$UI_VALUE"
}
step_youtube() {
ui_title "$(t step_youtube)"
ui_dim "$(t youtube_note)"
if ui_yesno "$(t youtube_q)" "yes"; then
CFG_YOUTUBE="yes"
ui_dim "$(t youtube_cookies_note)"
ui_input "$(t youtube_cookies_prompt)" "./data/youtube" v_nonempty
CFG_YOUTUBE_COOKIES_HOST_PATH="$UI_VALUE"
else
CFG_YOUTUBE="no"
fi
}
access_url() {
if [[ "$CFG_WEBUI" == "yes" ]]; then
if [[ "$CFG_PROXY" == "yes" ]]; then
@@ -222,6 +236,7 @@ step_summary() {
printf ' %-12s %s\n' "$(t summary_db):" "$dbl"
printf ' %-12s %s\n' "$(t summary_redis):" "$rdl"
printf ' %-12s %s\n' "$(t summary_storage):" "$stl"
printf ' %-12s %s\n' "$(t summary_youtube):" "$([[ "$CFG_YOUTUBE" == yes ]] && t enabled || t disabled)"
printf ' %-12s %s\n' "$(t summary_access):" "$(access_url)"
echo
ui_yesno "$(t confirm_start)" "yes" || { ui_warn "$(t aborted)"; exit 0; }
@@ -232,6 +247,10 @@ step_done() {
ui_ok "$(t done_url): $(access_url)"
ui_info "$(t done_config): ${ENV_FILE}"
[[ "$CFG_ADMIN_CREATE" == "yes" ]] && ui_info "$(t done_admin_login): ${CFG_ADMIN_USER}"
if [[ "$CFG_YOUTUBE" == "yes" ]]; then
ui_info "$(t done_youtube_title)"
ui_dim "$(t done_youtube_cookies "${CFG_YOUTUBE_COOKIES_HOST_PATH}/cookies.txt")"
fi
ui_dim "$(t done_commands)"
}
@@ -247,6 +266,7 @@ run_wizard() {
step_admin
step_ml
step_enrichment
step_youtube
gen_hex 32; CFG_JWT_SECRET="$SECRET"