yt-dlp: [Broken] Nickelodeon.be

Hi! Seems nickelodeon.be is broken. Playback works in browser.

Checklist

  • I’m reporting a broken site support
  • I’ve verified that I’m running yt-dlp version 2021.03.07
  • I’ve checked that all provided URLs are alive and playable in a browser
  • [X 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

% python3 -m yt_dlp https://www.nickelodeon.nl/episodes/1dzmf6/spongebob-sandy-s-gekke-nichtjes-onbeveiligingsagenten-seizoen-seasonnumber-12-afl-8 --no-check-certificate --verbose -f best -r 5m -c -w --add-metadata -i
[debug] Command-line config: ['https://www.nickelodeon.nl/episodes/1dzmf6/spongebob-sandy-s-gekke-nichtjes-onbeveiligingsagenten-seizoen-seasonnumber-12-afl-8', '--no-check-certificate', '--verbose', '-f', 'best', '-r', '5m', '-c', '-w', '--add-metadata', '-i']
[debug] Loading archive file None
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] yt-dlp version 2021.03.07 (source)
[debug] Python version 3.7.3 (CPython 64bit) - Darwin-20.3.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.3.2, ffprobe 4.3.2, rtmpdump 2.4
[debug] Proxy map: {}
[nick.de] spongebob-sandy-s-gekke-nichtjes-onbeveiligingsagenten-seizoen-seasonnumber-12-afl-8: Downloading webpage
[nick.de] 212f8019-824f-11e9-a442-0e40cf2fc285: Downloading JSON metadata
[nick.de] 212f8019-824f-11e9-a442-0e40cf2fc285: Downloading info
ERROR: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); 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 "/Users/niels/Library/Python/3.7/lib/python/site-packages/yt_dlp/extractor/common.py", line 654, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/Users/niels/Library/Python/3.7/lib/python/site-packages/yt_dlp/YoutubeDL.py", line 2784, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 18 (8 by maintainers)

Most upvoted comments

Episodes are still being added, so I tried one on Nick.de, and I got the same error. The video is region locked.

C:\[...]>yt-dlp -vU https://www.nick.de/episodes/sev72v/die-patrick-star-show-perlas-grosse-chance-die-superbabys-staffel-1-ep-12
[debug] Command-line config: ['-vU', 'https://www.nick.de/episodes/sev72v/die-patrick-star-show-perlas-grosse-chance-die-superbabys-staffel-1-ep-12']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.07.18 [135f05e] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.19043-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 2022-05-12-git-30e2bb0f64-full_build-www.gyan.dev (setts), ffprobe 2022-05-12-git-30e2bb0f64-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.07.18, Current version: 2022.07.18
yt-dlp is up to date (2022.07.18)
[debug] [nick.de] Extracting URL: https://www.nick.de/episodes/sev72v/die-patrick-star-show-perlas-grosse-chance-die-superbabys-staffel-1-ep-12
[nick.de] die-patrick-star-show-perlas-grosse-chance-die-superbabys-staffel-1-ep-12: Downloading webpage
[nick.de] b481c9a8-3c12-4c07-9615-63cdcbed3658: Downloading JSON metadata
[nick.de] b481c9a8-3c12-4c07-9615-63cdcbed3658: Downloading info
ERROR: [nick.de] die-patrick-star-show-perlas-grosse-chance-die-superbabys-staffel-1-ep-12: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 644, in extract
  File "yt_dlp\extractor\mtv.py", line 327, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 231, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 234, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 1004, in download_content
  File "yt_dlp\extractor\common.py", line 968, in download_handle
  File "yt_dlp\extractor\common.py", line 838, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 795, in _request_webpage

  File "yt_dlp\extractor\common.py", line 777, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3639, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error```

FWIW it seems they are moving over to rtmpe, following script e.g. returns rtmpe://cp5290.edgefcs.net/ondemand/mtviestor/_!/intlod/won-intl/spongebob_squarepants/spongebob_squarepants_11/233_spongebob_squarepants_233/ABC742414/ABC742414_nl-NL_1920x1080_5000.mp4:

#!/usr/bin/env bash

SHOWSLUG="76ypv4/spongebob"

echo "Downloading show ${SHOWSLUG}"

showContent=$(curl -s https://www.nickelodeon.nl/shows/"${SHOWSLUG}")

episodeIDs=$(echo "${showContent}" | grep -Eo '"id":"([A-Za-z0-9-]+)"' | cut -d '"' -f 4)
SAVEIFS=$IFS   # Save current IFS
IFS=$'\n'      # Change IFS to new line
episodeIDs=($episodeIDs) # split to array $names
IFS=$SAVEIFS   # Restore IFS

episodeURLs=$(echo "${showContent}" | grep -Eo '\<a href="(\/episodes\/[A-Za-z0-9]+\/[A-Za-z0-9-]+)"' | cut -d '"' -f 2)\\
SAVEIFS=$IFS   # Save current IFS
IFS=$'\n'      # Change IFS to new line
episodeURLs=($episodeURLs) # split to array $names
IFS=$SAVEIFS   # Restore IFS

for i in ${!episodeIDs[@]}; do

	episodeID="${episodeIDs[$i]}"
	episodeURL="${episodeURLs[$i]}"

	echo "-- Downloading episode ${episodeID} -> ${episodeURL}"

	episodeInfo=$(curl -H 'Accept: application/json' -s "https://media.mtvnservices.com/pmt/e1/access/index.html?uri=mgid:arc:episode:nick.intl:${episodeID}&configType=edge&ref=https://www.nickelodeon.nl${episodeURL}")

	feedURL=$(echo "${episodeInfo}" | jq -r '.config.feed')
	echo "--- feed URL: ${feedURL}"

	epiMGID=$(echo "${episodeInfo}" | jq -r '.config.uri')	
	echo "--- MGID: ${epiMGID}"

	mediaGenURL=$(echo "${episodeInfo}" | jq -r '.config.mediaGen')
	echo "--- mediaGenURL: ${mediaGenURL}"

	downloadURL=$(echo "${feedURL}" | sed "s/{uri}/${epiMGID}/")
	echo "--- fetching episode feed from ${downloadURL}" 
	epiFeed=$(curl -s -H 'Accept: application/xml' "${downloadURL}")
	
	epiDownloadURL=$(echo "$epiFeed" | grep -Eo '\"(https\:\/\/media\-utils.*)\"' | cut -d '"' -f 2 | sed 's/\&amp\;/\&/g')
	epiDownloadFeed=$(curl -s "${epiDownloadURL}" | grep -Eo '<src>(.*)</src>' | cut -d '>' -f 2 | cut -d '<' -f 1 | tail -n1)

	echo ${epiDownloadFeed}

	break
done