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

  1. Accept it: the item was removed server-side
  2. Search ARD for a re-broadcast or the content on the responsible regional broadcaster (WDR, NDR, etc.)
  3. 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

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


AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14). Data as JSON: /api/errors/bf58e6fbd8d2cb20. Report an issue: GitHub.