sportdeutschland.tv error 404 #24764

Open
opened 2026-02-21 13:29:01 -05:00 by deekerman · 3 comments
Owner

Originally created by @UncleOwen on GitHub (Dec 9, 2021).

Checklist

  • I'm reporting a broken site support
  • I've verified that I'm running youtube-dl version 2021.06.06
  • 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

$ youtube-dl https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop
[SportDeutschland] hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
uo@vmhost:/data/Downloads$ youtube-dl --verbose https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-91-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Proxy map: {}
[SportDeutschland] hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/home/uo/.local/pipx/venvs/youtube-dl/lib/python3.8/site-packages/youtube_dl/extractor/common.py", line 634, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/home/uo/.local/pipx/venvs/youtube-dl/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2288, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.8/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

Description

WRITE DESCRIPTION HERE

Originally created by @UncleOwen on GitHub (Dec 9, 2021). <!-- ###################################################################### WARNING! IGNORING THE FOLLOWING TEMPLATE WILL RESULT IN ISSUE CLOSED AS INCOMPLETE ###################################################################### --> ## Checklist <!-- Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl: - First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.06.06. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED. - Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser. - Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape. - Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates. - Finally, put x into all relevant boxes (like this [x]) --> - [X] I'm reporting a broken site support - [X] I've verified that I'm running youtube-dl version **2021.06.06** - [X] 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 - [x] I've searched the bugtracker for similar issues including closed ones ## Verbose log <!-- Provide the complete verbose output of youtube-dl that clearly demonstrates the problem. Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <your command line>`), copy the WHOLE output and insert it below. It should look similar to this: [debug] System config: [] [debug] User config: [] [debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj'] [debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251 [debug] youtube-dl version 2021.06.06 [debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2 [debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 [debug] Proxy map: {} <more lines> --> ``` $ youtube-dl https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop [SportDeutschland] hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop: Downloading JSON metadata ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. uo@vmhost:/data/Downloads$ youtube-dl --verbose https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--verbose', 'https://sportdeutschland.tv/hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop'] [debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8 [debug] youtube-dl version 2021.06.06 [debug] Python version 3.8.10 (CPython) - Linux-5.4.0-91-generic-x86_64-with-glibc2.29 [debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4 [debug] Proxy map: {} [SportDeutschland] hc-leipzig/deutschland-vs-tschechien-gruppe-e-kommentiert-von-johanna-schierkop: Downloading JSON metadata ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. File "/home/uo/.local/pipx/venvs/youtube-dl/lib/python3.8/site-packages/youtube_dl/extractor/common.py", line 634, in _request_webpage return self._downloader.urlopen(url_or_request) File "/home/uo/.local/pipx/venvs/youtube-dl/lib/python3.8/site-packages/youtube_dl/YoutubeDL.py", line 2288, in urlopen return self._opener.open(req, timeout=self._socket_timeout) File "/usr/lib/python3.8/urllib/request.py", line 531, in open response = meth(req, response) File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response response = self.parent.error( File "/usr/lib/python3.8/urllib/request.py", line 569, in error return self._call_chain(*args) File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain result = func(*args) File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) ``` ## Description <!-- Provide an explanation of your issue in an arbitrary form. Provide any additional information, suggested solution and as much context and examples as possible. If work on your issue requires account credentials please provide them or explain how one can obtain them. --> WRITE DESCRIPTION HERE
Author
Owner

@dirkf commented on GitHub (Dec 9, 2021):

Although the actual video says
"451: Der Inhalt steht in deiner Region nicht zur Verfügung" ("Content not available in your region"), the metadata is fetched in the browser. Apparently the API URL has changed. This patch enables the download (which bypasses the region check directly):

--- old/youtube-dl/youtube_dl/extractor/sportdeutschland.py
+++ new/youtube-dl/youtube_dl/extractor/sportdeutschland.py
@@ -8,6 +8,7 @@
 )
 from ..utils import (
     clean_html,
+    determine_ext,
     float_or_none,
     int_or_none,
     parse_iso8601,
@@ -47,6 +48,36 @@
 
     def _real_extract(self, url):
         display_id = self._match_id(url)
+        data = self._download_json(
+            'https://api.sportdeutschland.tv/api/stateless/frontend/assets/%s' % display_id,
+            display_id, fatal=False) or {}
+        if data:
+            title = data['name'].strip()
+            asset_id = data['id']
+            video_url = data['video_url']
+            ext = determine_ext(video_url)
+            import pdb; pdb.set_trace()
+            if ext == 'smil':
+                formats = self._extract_smil_formats(video_url, asset_id)
+            else:
+                formats = [{'url': video_url, }]
+            self._sort_formats(formats)
+            info = {
+                'id': asset_id,
+                'display_id': display_id,
+                'title': title,
+                'description': data.get('description'),
+                'formats': formats,
+                'thumbnail': data.get('image_url'),
+            }
+            timestamp = parse_iso8601(data.get('content_start_date'))
+            if timestamp is not None:
+                duration = parse_iso8601(data.get('content_end_date'))
+                if duration is not None:
+                    info['duration'] = duration - timestamp
+                info['timestamp'] = timestamp
+            return info
+
         data = self._download_json(
             'https://backend.sportdeutschland.tv/api/permalinks/' + display_id,
             display_id, query={'access_token': 'true'})

Some links on the home page can't be extracted: the SMIL URL gets an empty XML file, but that might be geo-blocking, or a different class of video that would need further investigation.

@dirkf commented on GitHub (Dec 9, 2021): Although the actual video says "451: Der Inhalt steht in deiner Region nicht zur Verfügung" ("Content not available in your region"), the metadata is fetched in the browser. Apparently the API URL has changed. This patch enables the download (which bypasses the region check directly): ``` --- old/youtube-dl/youtube_dl/extractor/sportdeutschland.py +++ new/youtube-dl/youtube_dl/extractor/sportdeutschland.py @@ -8,6 +8,7 @@ ) from ..utils import ( clean_html, + determine_ext, float_or_none, int_or_none, parse_iso8601, @@ -47,6 +48,36 @@ def _real_extract(self, url): display_id = self._match_id(url) + data = self._download_json( + 'https://api.sportdeutschland.tv/api/stateless/frontend/assets/%s' % display_id, + display_id, fatal=False) or {} + if data: + title = data['name'].strip() + asset_id = data['id'] + video_url = data['video_url'] + ext = determine_ext(video_url) + import pdb; pdb.set_trace() + if ext == 'smil': + formats = self._extract_smil_formats(video_url, asset_id) + else: + formats = [{'url': video_url, }] + self._sort_formats(formats) + info = { + 'id': asset_id, + 'display_id': display_id, + 'title': title, + 'description': data.get('description'), + 'formats': formats, + 'thumbnail': data.get('image_url'), + } + timestamp = parse_iso8601(data.get('content_start_date')) + if timestamp is not None: + duration = parse_iso8601(data.get('content_end_date')) + if duration is not None: + info['duration'] = duration - timestamp + info['timestamp'] = timestamp + return info + data = self._download_json( 'https://backend.sportdeutschland.tv/api/permalinks/' + display_id, display_id, query={'access_token': 'true'}) ``` Some links on the home page can't be extracted: the SMIL URL gets an empty XML file, but that might be geo-blocking, or a different class of video that would need further investigation.
Author
Owner

@dirkf commented on GitHub (Apr 17, 2022):

@FriedrichRehren, would you like to make a PR for the fix using your updated fork?

@dirkf commented on GitHub (Apr 17, 2022): @FriedrichRehren, would you like to make a PR for the fix using your updated fork?
Author
Owner

@pflode commented on GitHub (Sep 25, 2022):

Any news on this issue? I just wanted to use youtube-dl with https://sportdeutschland.tv/rgcnuernberg/wdsf-european-championship-formation-standard and noticed that neither the current version (2021.12.17) nor the patched extractor from https://github.com/FriedrichRehren/youtube-dl/raw/aa0b30825bdba36b3337255b534bfbe6efea9092/youtube_dl/extractor/sportdeutschland.py will download: (caused by KeyError('video_url')).

@pflode commented on GitHub (Sep 25, 2022): Any news on this issue? I just wanted to use youtube-dl with https://sportdeutschland.tv/rgcnuernberg/wdsf-european-championship-formation-standard and noticed that neither the current version (2021.12.17) nor the patched extractor from https://github.com/FriedrichRehren/youtube-dl/raw/aa0b30825bdba36b3337255b534bfbe6efea9092/youtube_dl/extractor/sportdeutschland.py will download: (caused by KeyError('video_url')).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/youtube-dl-ytdl-org#24764
No description provided.