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>
This commit is contained in:
17
soloist/compose.yml
Normal file
17
soloist/compose.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
# .5 호스트 배포 예시: /root/bot 에서
|
||||
# docker compose -f music_bot_v2/soloist/compose.yml up -d --build
|
||||
# 스포티파이 앱의 기기 목록에 보이려면(페어링) 같은 LAN에서 mDNS가 닿아야 하므로 host 네트워크를 쓴다.
|
||||
services:
|
||||
soloist-bridge:
|
||||
build: .
|
||||
image: soloist-bridge:latest
|
||||
container_name: soloist-bridge
|
||||
restart: always
|
||||
network_mode: host
|
||||
# SOLOIST_API_KEY=... (스포티파이 개발자 대시보드에서 발급, 커밋 금지)
|
||||
env_file: /root/bot/soloist/soloist.env
|
||||
environment:
|
||||
- SOLOIST_DEVICE_NAME=music_bot
|
||||
volumes:
|
||||
# 페어링 정보·soloist 실행 파일이 여기 남는다(지우면 다시 페어링해야 함)
|
||||
- /root/bot/soloist/data:/data
|
||||
Reference in New Issue
Block a user