Add presenter view, stats, lyrics worker, watch party with voice chat, timestamp sharing, soundbites, notes, transcript search, PiP, EQ, sleep fade, gestures and external players; fix the crossfade end-of-song race

This commit is contained in:
Jonathan Sykes
2026-09-20 00:07:12 +08:00
parent ca07e1fdf1
commit 9c1ec4ac51
17 changed files with 2912 additions and 111 deletions

15
scripts/lyrics/Dockerfile Normal file
View File

@@ -0,0 +1,15 @@
# Lyrics worker — transcribes saved songs that have no lyrics yet, one at a
# time, with faster-whisper on CPU (no API keys). Talks to the ytplayer
# service over the compose network only; see scripts/lyrics/auto_lyrics.py.
FROM python:3.12-slim
ENV PYTHONUNBUFFERED=1 \
HF_HOME=/models \
PIP_NO_CACHE_DIR=1
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY auto_lyrics.py .
# Model weights (downloaded on first use) and the worker's memory of
# instrumentals/failures live on volumes, so rebuilds don't re-download.
VOLUME ["/models", "/data"]
CMD ["sh", "-c", "exec python auto_lyrics.py --missing --watch ${WATCH_SECONDS:-300} --state /data/state.json --model ${WHISPER_MODEL:-large-v3-turbo} --threads ${WHISPER_THREADS:-2}"]