ytdl-org/youtube-dl · error · ExtractorError
Failed to get the video URL
Error message
Failed to get the video URL
What it means
Raised by the Jove extractor when the chapters XML document (fetched from jove.com's video-chapters endpoint) has no 'video' attribute on its root element. That attribute is the sole source of the actual media URL, so without it extraction cannot continue.
Source
Thrown at youtube_dl/extractor/jove.py:59
]
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
webpage = self._download_webpage(url, video_id)
chapters_id = self._html_search_regex(
r'/video-chapters\?videoid=([0-9]+)', webpage, 'chapters id')
chapters_xml = self._download_xml(
self._CHAPTERS_URL.format(video_id=chapters_id),
video_id, note='Downloading chapters XML',
errnote='Failed to download chapters XML')
video_url = chapters_xml.attrib.get('video')
if not video_url:
raise ExtractorError('Failed to get the video URL')
title = self._html_search_meta('citation_title', webpage, 'title')
thumbnail = self._og_search_thumbnail(webpage)
description = self._html_search_regex(
r'<div id="section_body_summary"><p class="jove_content">(.+?)</p>',
webpage, 'description', fatal=False)
publish_date = unified_strdate(self._html_search_meta(
'citation_publication_date', webpage, 'publish date', fatal=False))
comment_count = int(self._html_search_regex(
r'<meta name="num_comments" content="(\d+) Comments?"',
webpage, 'comment count', fatal=False))
return {
'id': video_id,
'title': title,
'url': video_url,
'thumbnail': thumbnail,
'description': description,View on GitHub (pinned to 956b8c5855)
Solutions
- Verify the Jove video page still exists and plays in a browser.
- Update youtube-dl/yt-dlp in case the XML attribute was renamed.
- Report the specific video ID upstream if it persists across versions.
Defensive patterns
Strategy: try-catch
Try / catch
try:
ydl.extract_info(jove_url)
except ExtractorError as e:
if 'Failed to get the video URL' in str(e):
mark_broken(jove_url) # chapters XML lacks media ref; not retryable Prevention
- Verify Jove pages resolve in a browser before batch extraction.
- Treat as permanent per-URL failure (server-side media unlink).
- Report persistent cases upstream with the video ID.
When it happens
Trigger: The regex /video-chapters\?videoid=(\d+) finds a chapters ID, _download_xml succeeds, but chapters_xml.attrib.get('video') is empty - server-side the video was unlinked from its chapters, the ID is stale, or Jove changed the XML schema.
Common situations: Removed or re-published Jove science videos whose chapter records no longer reference a media file; rare schema changes on Jove's XML service.
Related errors
- Missing "id" field in extractor result
- Missing "title" field in extractor result
- No video formats found!
- Can't extract Bangumi episode ID
- Invalid rendition field.
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/d8ddd3e657501ae7.
Report an issue: GitHub.