ytdl-org/youtube-dl · error · ExtractorError
Video %s is no longer available
Error message
Video %s is no longer available
What it means
Raised by ARDMediathekIE when the webpage contains '>Der gewünschte Beitrag ist nicht mehr verfügbar.<' ('the requested contribution is no longer available'). ARD removed the item from the Mediathek, so extraction stops. Marked expected=True.
Source
Thrown at youtube_dl/extractor/ard.py:183
document_id = None
numid = re.search(r'documentId=([0-9]+)', url)
if numid:
document_id = video_id = numid.group(1)
else:
video_id = m.group('video_id')
webpage = self._download_webpage(url, video_id)
ERRORS = (
('>Leider liegt eine Störung vor.', 'Video %s is unavailable'),
('>Der gewünschte Beitrag ist nicht mehr verfügbar.<',
'Video %s is no longer available'),
)
for pattern, message in ERRORS:
if pattern in webpage:
raise ExtractorError(message % video_id, expected=True)
if re.search(r'[\?&]rss($|[=&])', url):
doc = compat_etree_fromstring(webpage.encode('utf-8'))
if doc.tag == 'rss':
return GenericIE()._extract_rss(url, video_id, doc)
title = self._og_search_title(webpage, default=None) or self._html_search_regex(
[r'<h1(?:\s+class="boxTopHeadline")?>(.*?)</h1>',
r'<meta name="dcterms\.title" content="(.*?)"/>',
r'<h4 class="headline">(.*?)</h4>',
r'<title[^>]*>(.*?)</title>'],
webpage, 'title')
description = self._og_search_description(webpage, default=None) or self._html_search_meta(
'dcterms.abstract', webpage, 'description', default=None)
if description is None:
description = self._html_search_meta(
'description', webpage, 'meta description', default=None)
if description is None:View on GitHub (pinned to 956b8c5855)
Solutions
- Accept it: the item was removed server-side
- Search ARD for a re-broadcast or the content on the responsible regional broadcaster (WDR, NDR, etc.)
- Prune dead links from playlists
Defensive patterns
Strategy: try-catch
Validate before calling
# Pre-check the page for the removal banner
import requests
if 'Der gewünschte Beitrag ist nicht mehr verfügbar' in requests.get(url).text:
mark_url_dead(url) # removed from the Mediathek; permanent Try / catch
try:
ydl.extract_info(url)
except ExtractorError as e:
if 'is no longer available' in str(e):
mark_url_dead(url) # do NOT retry; content was withdrawn Prevention
- Download ARD content within its availability window instead of relying on old links
- Key automation on the German banner distinction: Störung = retry, nicht mehr verfügbar = drop
When it happens
Trigger: GET of the ARD page returns the 'no longer available' banner; content past its Mediathek availability window; withdrawn episodes.
Common situations: Old links from articles/forums; ARD's typical 7-day-to-months availability windows; rights-expired sports and news content.
Related errors
- Video %s does not exist
- Video %s is not available
- Show not found in A&E feed (too new?)
- Video %s has been deleted
- %s said: %s
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/bf58e6fbd8d2cb20.
Report an issue: GitHub.