Skip to content

fix: upgrade yt-dlp>=2026.3.17 to resolve YouTube SABR 403 errors#24

Open
masterbatcoderman10 wants to merge 1 commit into
averygan:mainfrom
masterbatcoderman10:fix/yt-dlp-sabr-block
Open

fix: upgrade yt-dlp>=2026.3.17 to resolve YouTube SABR 403 errors#24
masterbatcoderman10 wants to merge 1 commit into
averygan:mainfrom
masterbatcoderman10:fix/yt-dlp-sabr-block

Conversation

@masterbatcoderman10
Copy link
Copy Markdown

Root Cause

YouTube started enforcing SABR streaming which blocks older yt-dlp versions (2025.10.14 and below) with HTTP Error 403: Forbidden on download. The /api/info metadata endpoint still works, but /api/download fails for all YouTube videos.

See: yt-dlp/yt-dlp#12482

Fix

  • Pin yt-dlp>=2026.3.17 in requirements.txt
  • Use pip install --upgrade-deps in reclip.sh so venv setup always pulls the latest yt-dlp

Existing users

rm -rf venv && ./reclip.sh

Closes #8

YouTube started enforcing SABR streaming which blocks older yt-dlp
versions (2025.10.14 and below) with 'HTTP Error 403: Forbidden'.
The /api/info metadata endpoint still works but /api/download fails.

Fix: pin minimum yt-dlp version in requirements.txt and use
pip install --upgrade-deps so the venv setup always pulls latest.

Closes averygan#8.
DeBondor added a commit to DeBondor/reclip that referenced this pull request Apr 11, 2026
…dening, memory leak, UX)

- Pin yt-dlp>=2026.3.17 to fix YouTube SABR 403 errors (fixes averygan#8)
- Add --upgrade-deps to reclip.sh venv setup
- Add URL validation (http/https only)
- Add format_id sanitization against yt-dlp flag injection
- Add job_id format validation
- Add path traversal protection on file serving
- Add non-root user in Dockerfile
- Add threading lock for jobs dict (race condition fix)
- Add job TTL auto-purge (1hr) + MAX_JOBS cap (500)
- Add /api/cleanup endpoint + frontend cleanup call after download
- Add structured logging + type hints
- Fix dlAll() to await each download via Promise-based polling
- Add ARIA labels on interactive elements
- Improve title sanitization (80 char limit)
- reclip.sh: always run pip install on venv reuse
- reclip.sh: add EXIT trap for clean shutdown message
Auzlex added a commit to Auzlex/reclip that referenced this pull request Apr 29, 2026
…erygan#24 (security, stability, and progress tracking)

- PR averygan#24: Fixed YouTube 403 Forbidden errors by pinning yt-dlp>=2026.3.17.
- PR averygan#3: Implemented security hardening (URL validation, format/job ID sanitization, path traversal protection, and non-root Docker user).
- PR averygan#12: Added automatic disk management (1-hour job TTL, 500MB directory size cap, and auto-purge).
- PR averygan#13: Enhanced download experience with real-time progress tracking, 30-minute timeouts, and UI progress bars.
- Backend: Unified app.py with threading locks, structured logging, and configurable cleanup settings via environment variables.
- Environment: Updated Dockerfile and reclip.sh for better dependency management and unprivileged execution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Access denied by the platform

1 participant