Gerçek capture denemesinde debug endpoint'i asıl nedeni gösterdi: "n challenge solving failed" — YouTube'un imza çözme JS challenge'ı için yt-dlp'nin bir JS runtime'ı yoktu, bu da formatların eksik kalıp "page needs to be reloaded" ile sonuçlanmasına yol açıyordu. node:22-slim zaten Node 22 içeriyor (minimum gereksinim); yt-dlp'yi "yt-dlp[default]" (EJS solver dahil) olarak kurup capture çağrısına --js-runtimes node eklendi. Lokal olarak doğrulandı: aynı video artık formatları hatasız çözüyor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
16 lines
510 B
Docker
16 lines
510 B
Docker
FROM node:22-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ffmpeg python3 python3-pip ca-certificates \
|
|
&& pip3 install --break-system-packages -U "yt-dlp[default]" bgutil-ytdlp-pot-provider \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN corepack enable
|
|
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN pnpm install
|
|
RUN pnpm --filter @streamclipper/db exec prisma generate
|
|
|
|
CMD ["sh", "-c", "pnpm --filter @streamclipper/db exec prisma migrate deploy && pnpm --filter @streamclipper/api-daemon dev"]
|