- 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>
13 lines
620 B
Docker
13 lines
620 B
Docker
# soloist-bridge: 스포티파이 Soloist(공식 헤드리스 클라이언트) → MP3 스트림 중계 서버
|
|
# soloist 실행 파일은 이미지에 넣지 않고 /data/bin 에 내려받는다(빌드가 90일마다 만료되므로 자동 갱신).
|
|
FROM debian:trixie-slim
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends pulseaudio pulseaudio-utils ffmpeg python3 ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY bridge.py entrypoint.sh /app/
|
|
RUN chmod +x /app/entrypoint.sh
|
|
ENV SOLOIST_DATA=/data SOLOIST_PORT=8780 PULSE_SINK=soloist
|
|
VOLUME /data
|
|
EXPOSE 8780
|
|
ENTRYPOINT ["/app/entrypoint.sh"]
|