Files
music_bot_v2/bot/.env.example
tkrmagid 8087e2e98b feat: 스포티파이 곡을 Soloist(스포티파이 공식 클라이언트)로 먼저 재생, 안 되면 유튜브로
- soloist/: soloist-bridge 중계 서버(docker). 곡마다 soloist --single-track을 띄우고
  PulseAudio 빈 싱크를 캡처해 MP3 스트림으로 Lavalink(http 소스)에 넘긴다.
  첫 소리가 나와야 성공으로 응답, 15초 안에 소리가 없거나 오류면 실패.
  한 계정 한 곡 제한 → 다른 길드가 쓰는 중이면 busy. 빌드 만료(90일) 자동 갱신, 페어링 대기 자동 진입.
- bot: SOLOIST_URL 설정 시 스포티파이 곡은 재생 직전에 Soloist를 먼저 시도, 실패하면 기존 유튜브 경로.
  곡 도중 끊김·위치 이동·음성 재접속은 같은 곡의 유튜브 음원으로 그 위치부터 이어 재생.
  오래 걸려 실패하면 5분 동안 유튜브로만 재생.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 20:33:46 +09:00

45 lines
1.8 KiB
Plaintext

# ===== music_bot_v2 봇 환경변수 예시 =====
# 실제 값은 bot/.env 에 넣는다. (bot/.gitignore 의 *.env 로 커밋되지 않음)
# --- 디스코드 봇 ---
TOKEN=디스코드_봇_토큰
APPID=디스코드_애플리케이션_ID
PREFIX=m1; # 명령어 접두사 (예: m1; m2; m3;)
DEBUG=false # true 면 상세 로그
EMBEDCOLOR=Blue # discord.js Colors 이름 (Blue/Orange/Purple 등)
# --- 데이터베이스 (컨테이너 기준 경로, /db 는 호스트 /root/bot/db 마운트) ---
DBPATH=/db/music1.db
# --- 개발/길드 ---
DEV=false
GUILDID=길드_ID
# --- Lavalink (오디오 재생 노드, .6 호스트) ---
LAVALINK_HOST=192.168.10.6
LAVALINK_PORT=2333
LAVALINK_PW=Lavalink_비밀번호
# --- Spotify (검색/미러) ---
SPOTIFY_CLIENTID=스포티파이_클라이언트ID
SPOTIFY_SECRET=스포티파이_시크릿
# --- 유튜브 쿠키 (성인인증/연령제한 재생 + 유튜브뮤직 검색용) ---
# 방식 A(권장): Netscape 쿠키 파일 경로. 리졸버(yt-dlp)와 봇이 공유하는 단일 소스.
# 호스트 /root/bot/db/ytcookie.txt == 컨테이너 /db/ytcookie.txt
YOUTUBE_COOKIE_PATH=/db/ytcookie.txt
# 방식 B(하위호환): 쿠키 헤더 문자열을 인라인으로. 설정되면 이 값이 우선한다.
# YOUTUBE_COOKIE="VISITOR_INFO1_LIVE=...; SID=...; ..."
# --- yt-dlp 오디오 리졸버 (성인인증 SABR 우회, .5 호스트에서 실행) ---
YTRESOLVER_URL=http://192.168.10.5:8779
# --- 스포티파이 Soloist 중계 서버 (선택, 리포 루트 soloist/) ---
# 스포티파이 곡을 Soloist로 먼저 재생하고, 안 되면 유튜브로 재생한다. 비우면 유튜브로만 재생.
SOLOIST_URL=http://192.168.10.5:8780
# --- Redis (대시보드 상태 연동, 선택) ---
REDIS=true
REDIS_HOST=192.168.10.7
REDIS_PORT=6379