v0.2.11 /relay/capabilities + /relay/transcribe-url (yt-dlp in container)

This commit is contained in:
local
2026-05-12 01:33:34 -05:00
parent 0a0fa009ec
commit b7f75904bb
7 changed files with 521 additions and 7 deletions
+15 -4
View File
@@ -1,9 +1,10 @@
# ─────────────────────────────────────────────────────────
# Recap Relay — StartOS 0.4 Docker image
#
# Includes: Node.js 20 only. No yt-dlp / ffmpeg / Python — the relay
# receives audio buffers from Recap clients and forwards to Gemini's
# File API; no local audio processing.
# Includes: Node.js 20 + yt-dlp + ffmpeg + Python. yt-dlp + ffmpeg are
# needed by the /relay/transcribe-url endpoint, which downloads
# YouTube / direct-audio URLs server-side so Recap clients don't have
# to ship the audio over their own (often slow) upstream.
#
# Uses Debian slim for the same reason Recap does — pip-free, but
# pulled-in C deps from npm packages prefer glibc over musl.
@@ -32,10 +33,20 @@ WORKDIR /app
# Runtime deps:
# - dumb-init: PID 1 signal handling
# - ca-certificates: HTTPS for Gemini + Keysat
# - python3 + pip: yt-dlp installation
# - ffmpeg: audio extraction (yt-dlp invokes it for -x)
# - curl: yt-dlp self-update fallback
RUN apt-get update && apt-get install -y --no-install-recommends \
dumb-init \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
curl \
python3 \
python3-pip \
python3-venv \
ffmpeg \
&& rm -rf /var/lib/apt/lists/* \
&& pip3 install --break-system-packages yt-dlp \
&& yt-dlp --version
# Copy installed deps + app code from builder
COPY --from=builder /app/vendor ./vendor/