ytdl-org/youtube-dl · error · ExtractorError
This live stream has already finished.
Error message
This live stream has already finished.
What it means
Raised by the Laola1TvBaseIE._extract_video path when the video page contains the German text 'Dieser Livestream ist bereits beendet.', meaning the live stream is over. It is expected=True, so it reports cleanly that the content is finished rather than failing with a parse error.
Source
Thrown at youtube_dl/extractor/laola1tv.py:130
return {
'id': video_id,
'title': self._live_title(title) if is_live else title,
'upload_date': unified_strdate(_v('time_date')),
'uploader': _v('meta_organisation'),
'categories': categories,
'is_live': is_live,
'formats': formats,
}
class Laola1TvBaseIE(Laola1TvEmbedIE):
def _extract_video(self, url):
display_id = self._match_id(url)
webpage = self._download_webpage(url, display_id)
if 'Dieser Livestream ist bereits beendet.' in webpage:
raise ExtractorError('This live stream has already finished.', expected=True)
conf = self._parse_json(self._search_regex(
r'(?s)conf\s*=\s*({.+?});', webpage, 'conf'),
display_id,
transform_source=lambda s: js_to_json(re.sub(r'shareurl:.+,', '', s)))
video_id = conf['videoid']
config = self._download_json(conf['configUrl'], video_id, query={
'videoid': video_id,
'partnerid': conf['partnerid'],
'language': conf.get('language', ''),
'portal': conf.get('portalid', ''),
})
error = config.get('error')
if error:
raise ExtractorError('%s said: %s' % (self.IE_NAME, error), expected=True)
video_data = config['video']View on GitHub (pinned to 956b8c5855)
Solutions
- Wait for the VOD/VOD-URL variant to be published and use that URL instead of the live one
- Check the event page for a replay link once processing completes
- Record the stream live next time (e.g. with livestream mode) rather than fetching afterwards
- Verify in a browser that a replay actually exists before retrying
Defensive patterns
Strategy: try-catch
Try / catch
try:
ydl.extract_info(url)
except ExtractorError as e:
if 'already finished' in str(e):
schedule_vod_check(url, later=True) # retry once VOD is published
else:
raise Prevention
- Download live events while live; do not rely on the live URL afterwards
- Before fetching, check the event end time in your local timezone
When it happens
Trigger: Opening any laola1.tv video page after its live stream ended — the site keeps the page up but embeds the German end-of-stream notice; the extractor checks the literal string before parsing the conf JSON.
Common situations: Downloading event VOD URLs while the event is still listed but the stream finished and no VOD was published yet; time-zone confusion about when a broadcast ends; following live links from schedules after the fact.
Related errors
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/cac4f6b9a244ad87.
Report an issue: GitHub.