yt-dlp: [Broken] ParamountPlus Extractor w/ --geo-verification-proxy
Checklist
- I’m reporting a broken site support
- I’ve verified that I’m running yt-dlp version 2021.08.10
- I’ve checked that all provided URLs are alive and playable in a browser
- I’ve checked that all URLs and arguments with special characters are properly quoted or escaped
- I’ve searched the bugtracker for similar issues including closed ones
Verbose log
Commamd ALL GEO BYPASS FLAGS Used:
yt-dlp --config-location /root/yt-dlp_PPLUS.conf 'https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/' --geo-verification-proxy MY_PROXY_IP_PORT --geo-bypass-country US --geo-bypass --cookies ./PPLUS_COOKIE.txt --allow-unplayable-formats --verbose &> PPLUS_LOG_ALL_GEO.txt
[debug] User config file: /root/yt-dlp.conf
[debug] User config: ['--retries', '3', '--ap-mso', 'Spectrum', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '-N50', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '-f', 'bv+ba/b', '--add-metadata', '--write-all-thumbnails', '--embed-thumbnail']
[debug] Custom config file: /root/yt-dlp_PPLUS.conf
[debug] Custom config: ['--retries', '3', '--ap-mso', 'Spectrum', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '-f', 'bv+ba/b', '--downloader-args', 'aria2c:-x 16 -s 16 -j 16 -k 5M', '--add-metadata', '--write-all-thumbnails', '--embed-thumbnail']
[debug] Command-line config: ['--config-location', '/root/yt-dlp_PPLUS.conf', 'https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '--geo-bypass-country', 'US', '--geo-bypass', '--cookies', './PPLUS_COOKIE.txt', '--allow-unplayable-formats', '--verbose']
WARNING: --add-metadata is ignored since --allow-unplayable-formats was given
WARNING: --embed-thumbnail is ignored since --allow-unplayable-formats was given
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.08.10 (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-4.19.0-17-amd64-x86_64-with-debian-10.10
[debug] exe versions: ffmpeg v1.27-6-ge0542c4, ffprobe v1.27-6-ge0542c4, rtmpdump 2.4
[debug] Optional libraries: keyring, mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] Using fake IP 6.235.36.121 (US) as X-Forwarded-For
[debug] [ParamountPlus] Extracting URL: https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/
[ParamountPlus] 17jD7xwreZa6qWpSkU9JEKk__ebe56ni: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see https://github.com/yt-dlp/yt-dlp on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 682, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 3190, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.7/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
Command Only --geo-verification-proxy Used:
yt-dlp --config-location /root/yt-dlp_PPLUS.conf 'https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/' --geo-verification-proxy MY_PROXY_IP_PORT --cookies ./PPLUS_COOKIE.txt --allow-unplayable-formats --verbose &> PPLUS_LOG_ONLY_GEO_PROXY.txt
[debug] User config file: /root/yt-dlp.conf
[debug] User config: ['--retries', '3', '--ap-mso', 'Spectrum', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '-N50', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '-f', 'bv+ba/b', '--add-metadata', '--write-all-thumbnails', '--embed-thumbnail']
[debug] Custom config file: /root/yt-dlp_PPLUS.conf
[debug] Custom config: ['--retries', '3', '--ap-mso', 'Spectrum', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '-f', 'bv+ba/b', '--downloader-args', 'aria2c:-x 16 -s 16 -j 16 -k 5M', '--add-metadata', '--write-all-thumbnails', '--embed-thumbnail']
[debug] Command-line config: ['--config-location', '/root/yt-dlp_PPLUS.conf', 'https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/', '--geo-verification-proxy', 'MY_PROXY_IP_PORT', '--cookies', './PPLUS_COOKIE.txt', '--allow-unplayable-formats', '--verbose']
WARNING: --add-metadata is ignored since --allow-unplayable-formats was given
WARNING: --embed-thumbnail is ignored since --allow-unplayable-formats was given
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.08.10 (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-4.19.0-17-amd64-x86_64-with-debian-10.10
[debug] exe versions: ffmpeg v1.27-6-ge0542c4, ffprobe v1.27-6-ge0542c4, rtmpdump 2.4
[debug] Optional libraries: keyring, mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] [ParamountPlus] Extracting URL: https://www.paramountplus.com/movies/downsizing/17jD7xwreZa6qWpSkU9JEKk__ebe56ni/
[ParamountPlus] 17jD7xwreZa6qWpSkU9JEKk__ebe56ni: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see https://github.com/yt-dlp/yt-dlp on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 682, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 3190, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.7/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
Description
After last update, --geo-verification-proxy no longer works on Paramount Plus. Never had any issues prior to latest update.
I’ve tested with 30+ US private proxies, as well as using/noy using other geo bypass settings.
I’ve provided two logs, one with just --geo-verification-proxy and one with all geo bypass settings
Willing to provide Paramount Plus Login Upon request via an active dev
UPDATE:
The following workaround completes successfully… But, now the download is ran thru the PROXY:
Command:
yt-dlp --cookies PPLUS_COOKIE.txt ‘https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/’ --verbose --add-header ‘X-Forwarded-For: PROXY_IP’ --geo-verification-proxy IP:PORT --proxy IP:PORT --ignore-config
Verbose Log:
[debug] Command-line config: ['--cookies', 'PPLUS_COOKIE.txt', 'https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/', '--verbose', '--add-header', 'X-Forwarded-For: PROXY_IP', '--geo-verification-proxy', 'PROXY_IP:PORT', '--proxy', 'PROXY_IP:PORT', '-N50', '--ignore-config']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.08.10 (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-4.19.0-17-amd64-x86_64-with-debian-10.10
[debug] exe versions: ffmpeg v1.27-6-ge0542c4, ffprobe v1.27-6-ge0542c4, rtmpdump 2.4
[debug] Optional libraries: keyring, mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {'http': 'PROXY_IP:PORT', 'https': 'PROXY_IP:PORT'}
[debug] [ParamountPlus] Extracting URL: https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/
[ParamountPlus] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading JSON metadata
[ParamountPlus] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading JSON metadata
[ParamountPlus] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading DASH_CENC_PRECON SMIL data
[ParamountPlus] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading 1 format(s): hls-4547
[debug] Invoking downloader on "https://cbsios-vh.akamaihd.net/i/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2020/12/05/1828043843952/CBS_THE_STAND_101_AA_8CH_394714_,2228,4628,3128,1628,848,503,000.mp4.csmil/index_1_av.m3u8?null=0&id=AgBN93JMFzgFhm2mFGEyyQPMvJhnFUCZdT6BEJ4pdUzfdqemXMcYS97fIPCjun6vgRt+YkuOlaxB0A%3d%3d&hdntl=exp=1628829677~acl=%2fi%2ftemp_hd_gallery_video%2fCBS_Production_Outlet_VMS%2fvideo_robot%2fCBS_Production_Entertainment%2f2020%2f12%2f05%2f1828043843952%2fCBS_THE_STAND_101_AA_8CH_394714_*~data=hdntl~hmac=ddc5dfdfcb769b436f8451914c6a132a7360f4b3b56692421a6cd3d2183479c3"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 354
[download] Destination: The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4
WARNING: The download speed shown is only of one thread. This is a known issue and patches are welcome
TRUNCATED DOWNLOAD LOG..
[download] 99.6% of ~1.94GiB at 1.85MiB/s ETA 00:00
[download] 99.7% of ~1.93GiB at 1.10MiB/s ETA 00:00
[download] 99.7% of ~1.93GiB at 1.10MiB/s ETA 00:00
[download] 100.0% of ~1.93GiB at 2.81MiB/s ETA 00:00
[download] 100.0% of ~1.93GiB at 2.81MiB/s ETA 00:00
[download] 100% of 1.93GiB in 00:28
[debug] ffmpeg command line: ffprobe -show_streams 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4'
[FixupM3u8] Fixing malformed AAC bitstream of "The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4' -c copy -map 0 -dn -f mp4 -bsf:a aac_adtstoasc 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].temp.mp4'
[SponSkrub] Skipping sponskrub since it is not a YouTube video
Here is the same command working on the last release of yt-dlp, something broke after this release:
yt-dlp Version: 2021.08.02
COMMAND USED:
yt-dlp --cookies PPLUS_COOKIE.txt 'https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/' --verbose &> LAST_RELEASE_LOG.txt
VERBOSE LOG:
[debug] User config file: /root/yt-dlp.conf
[debug] User config: ['--retries', '3', '--ap-mso', 'Spectrum', '--ap-username', 'PRIVATE', '--ap-password', 'PRIVATE', '-N50', '--geo-verification-proxy', 'PROXY_IP:PORT', '--geo-bypass-country', 'US', '-f', 'bv+ba/b', '--add-metadata', '--write-all-thumbnails', '--embed-thumbnail']
[debug] Command-line config: ['--cookies', 'PPLUS_COOKIE.txt', 'https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.08.02 (zip)
[debug] Python version 3.7.3 (CPython 64bit) - Linux-4.19.0-17-amd64-x86_64-with-debian-10.10
[debug] exe versions: ffmpeg v1.27-6-ge0542c4, ffprobe v1.27-6-ge0542c4, rtmpdump 2.4
[debug] Proxy map: {}
[debug] Using fake IP 6.111.131.160 (US) as X-Forwarded-For
[debug] [CBS] Extracting URL: https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading XML
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading StreamPack SMIL data
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading JSON metadata
[info] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading 1 format(s): hls-4547
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Downloading thumbnail ...
[CBS] JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ: Writing thumbnail to: The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].jpg
[debug] Invoking downloader on "https://cbsios-vh.akamaihd.net/i/temp_hd_gallery_video/CBS_Production_Outlet_VMS/video_robot/CBS_Production_Entertainment/2020/12/05/1828043843952/CBS_THE_STAND_101_AA_8CH_394714_,2228,4628,3128,1628,848,503,000.mp4.csmil/index_1_av.m3u8?null=0&id=AgCU+wd9AhC6dIuuFGG6lG8T9I6OWUlL32aum9U%2fGsuI+132oaoh6NxSWeseIlvG1FGLiS%2f7j3snUw%3d%3d&hdntl=exp=1628831755~acl=%2fi%2ftemp_hd_gallery_video%2fCBS_Production_Outlet_VMS%2fvideo_robot%2fCBS_Production_Entertainment%2f2020%2f12%2f05%2f1828043843952%2fCBS_THE_STAND_101_AA_8CH_394714_*~data=hdntl~hmac=2c6186a6959eed0d09343df9918b3a9f27b822959314a8630a1fb12fc7935e7c"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 354
[download] Destination: The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4
WARNING: The download speed shown is only of one thread. This is a known issue and patches are welcome
TRUNCATED DOWNLOAD OUTPUT:
[download] 100.0% of ~1.93GiB at 68.83MiB/s ETA 00:00
[download] 100% of 1.93GiB in 00:22
[debug] ffmpeg command line: ffprobe -show_streams 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4'
[FixupM3u8] Fixing malformed AAC bitstream of "The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4' -c copy -map 0 -dn -f mp4 -bsf:a aac_adtstoasc 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].temp.mp4'
[Metadata] Adding metadata to "The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4' -i 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].meta' -map 0 -dn -c copy -metadata 'title=The Stand - The End' -metadata date=20201217 -metadata 'description=When the "Captain Trips" flu epidemic wipes out more than 99% of the population, the remaining few immune to the disease, including Stu Redman, Frannie Goldsmith, and Harold Lauder, set out in search of other survivors, all the while, experiencing visions of the nurturing Mother Abagail and the menacing figure of The Dark Man. (TV-MA L, V)' -metadata 'synopsis=When the "Captain Trips" flu epidemic wipes out more than 99% of the population, the remaining few immune to the disease, including Stu Redman, Frannie Goldsmith, and Harold Lauder, set out in search of other survivors, all the while, experiencing visions of the nurturing Mother Abagail and the menacing figure of The Dark Man. (TV-MA L, V)' -metadata purl=https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/ -metadata comment=https://www.paramountplus.com/shows/the-stand/video/JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ/the-stand-the-end/ -metadata artist=CBSI-NEW -metadata 'show=The Stand' -metadata season_number=1 -metadata 'episode_id=Episode 1' -metadata episode_sort=1 -map_metadata 1 'file:The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].temp.mp4'
[SponSkrub] Skipping sponskrub since it is not a YouTube video
[EmbedThumbnail] mutagen: Adding thumbnail to "The Stand - The End [JudCDITcmIS5TjyvnKdqjY5zHNR1t9wZ].mp4"
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 16 (11 by maintainers)
Commits related to this issue
- [ParamountPlus] Fix geo verification (#711) Closes #681 Authored by: shirt — committed to yt-dlp/yt-dlp by shirt-dev 3 years ago
- [ParamountPlus] Fix geo verification (#711) Closes #681 Authored by: shirt — committed to nixxo/yt-dlp by shirt-dev 3 years ago
My fix actually
@Vangelis66
You’re fine, was just clarifying. I will confirm that you were helpful in pointing us in the right direction.
@shirt-dev
I never implied this was “my” fix in any way… 😄 ; I have already posted, both in the
yt-dl
tracker as well as in this one 😉 , that I lack coding skills 😊 ; but I’d like to believe that in my previous comment I was the first one in this thread to point actual coders towards a successful resolution of the issue at hand…Keep up your sterling efforts, best greetings! 😸
@Vangelis66
Just tested your fix, and it’s GOLDEN!
Looks like I was late to the game lol! For shits and giggles though, here was my 25a3f4f verbose log (succesfully downloading via one of my NON US servers while using --geo-verification-proxy):
yt-dlp will work on most of the TV series (although not all episodes are downloadable) but your theatrical movies (downsizing) are DRM protected.