yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package). A bare yt-dlp from PyPI does not include them, and remote fetching is disabled by default, so images built after the EJS migration download nothing and fail with HTTP 403 while metadata and playlists keep working. Pin yt-dlp[default] so yt-dlp-ejs ships in the image, and pass --remote-components ejs:github so solver scripts refresh at runtime when YouTube rotates challenges.
8 lines
253 B
Plaintext
8 lines
253 B
Plaintext
matrix-nio == 0.24.0
|
|
google-auth-oauthlib == 1.3.1
|
|
google-api-python-client == 2.194.0
|
|
# The "default" extra pulls in yt-dlp-ejs, the JS challenge solver scripts
|
|
# YouTube requires for downloads. Keep it in lockstep with yt-dlp.
|
|
yt-dlp[default]
|
|
mutagen
|