yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package); a bare PyPI yt-dlp does not include them and remote fetching is disabled by default. Images built after the EJS migration fail every download with HTTP 403: Forbidden (radio only - playlists keep working).
yt-dlp[default] in requirements so the matching yt-dlp-ejs ships in the image
--remote-components ejs:github so solver scripts refresh at runtime when YouTube rotates challenges
Verified: fresh venv install from requirements.txt includes yt-dlp-ejs; challenge-solver warnings gone with the package present. Rebuild the image and restart to apply.
yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package); a bare PyPI yt-dlp does not include them and remote fetching is disabled by default. Images built after the EJS migration fail every download with `HTTP 403: Forbidden` (radio only - playlists keep working).
- `yt-dlp[default]` in requirements so the matching yt-dlp-ejs ships in the image
- `--remote-components ejs:github` so solver scripts refresh at runtime when YouTube rotates challenges
Verified: fresh venv install from requirements.txt includes yt-dlp-ejs; challenge-solver warnings gone with the package present. Rebuild the image and restart to apply.
yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package); a bare PyPI yt-dlp does not include them and remote fetching is disabled by default. Images built after the EJS migration therefore fail every download with HTTP 403 while playlists keep working. Use yt-dlp[default] so the matching yt-dlp-ejs ships in the image, and pass --remote-components ejs:github so solver scripts refresh at runtime when YouTube rotates challenges.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package); a bare PyPI yt-dlp does not include them and remote fetching is disabled by default. Images built after the EJS migration fail every download with
HTTP 403: Forbidden(radio only - playlists keep working).yt-dlp[default]in requirements so the matching yt-dlp-ejs ships in the image--remote-components ejs:githubso solver scripts refresh at runtime when YouTube rotates challengesVerified: fresh venv install from requirements.txt includes yt-dlp-ejs; challenge-solver warnings gone with the package present. Rebuild the image and restart to apply.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.