feat: npm run setup (yt-dlp + deps + build); lift upload size limit
scripts/setup.mjs runs `npm install`, downloads the platform-specific yt-dlp binary from GitHub releases to ./bin/yt-dlp (which src/youtube.ts already prefers), checks for ffmpeg and prints install hints, then runs `tsc`. One command replaces three for fresh checkouts. While verifying setup, hit `MulterError: File too large` (LIMIT_FILE_SIZE) on a 10 GB mkv upload, and ETXTBSY on freshly downloaded yt-dlp. - ETXTBSY: the redirect path in downloadFile opened a writestream to the destination before following the redirect, so the (unused) outer stream still held the file open when the post-download spawnSync ran. Split redirect-following from file writing so only the final 200 response opens the destination file. - LIMIT_FILE_SIZE: removed the hard-coded 4 GB cap. Upload limit now defaults to Infinity and is configurable via UPLOAD_MAX_BYTES. Wrapped multer's middleware so its errors (LIMIT_FILE_SIZE etc.) come back as a clean 413 JSON instead of a stack trace from the global error handler. - Also disabled Node's default 5 minute requestTimeout so 10 GB uploads over slow links don't get cut mid-stream. Configurable via HTTP_REQUEST_TIMEOUT_MS. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,7 @@
|
||||
node_modules/
|
||||
dist/
|
||||
bin/yt-dlp
|
||||
bin/yt-dlp.exe
|
||||
data/folders/*
|
||||
!data/folders/.gitkeep
|
||||
data/jobs/*
|
||||
|
||||
Reference in New Issue
Block a user