ytdl-org/youtube-dl · error · ExtractorError
this video has been %s
Error message
this video has been %s
What it means
Raised by the LINE LIVE extractor when no broadcast formats were found and the broadcast's archiveStatus is anything other than 'ARCHIVED' — the message embeds the lowercased status (e.g. 'this video has been expired' or 'terminated'). It is expected=True, reporting why the archive is unavailable.
Source
Thrown at youtube_dl/extractor/line.py:186
continue
if k == 'abr':
formats.extend(self._extract_m3u8_formats(
v, broadcast_id, 'mp4', protocol,
m3u8_id='hls', fatal=False))
continue
f = {
'ext': 'mp4',
'format_id': 'hls-' + k,
'protocol': protocol,
'url': v,
}
if not k.isdigit():
f['vcodec'] = 'none'
formats.append(f)
if not formats:
archive_status = item.get('archiveStatus')
if archive_status != 'ARCHIVED':
raise ExtractorError('this video has been ' + archive_status.lower(), expected=True)
self._sort_formats(formats)
info['formats'] = formats
return info
class LineLiveChannelIE(LineLiveBaseIE):
_VALID_URL = r'https?://live\.line\.me/channels/(?P<id>\d+)(?!/broadcast/\d+)(?:[/?&#]|$)'
_TEST = {
'url': 'https://live.line.me/channels/5893542',
'info_dict': {
'id': '5893542',
'title': 'いくらちゃん',
'description': 'md5:c3a4af801f43b2fac0b02294976580be',
},
'playlist_mincount': 29
}
def _archived_broadcasts_entries(self, archived_broadcasts, channel_id):View on GitHub (pinned to 956b8c5855)
Solutions
- If the archive expired, find a fan re-upload or clip of the broadcast
- Record broadcasts while they are live or shortly after, before the archive window closes
- Verify the broadcast URL still shows a replay in the LINE LIVE app
- Update youtube-dl/yt-dlp in case the status enum grew new values
Defensive patterns
Strategy: try-catch
Try / catch
try:
ydl.extract_info(url)
except ExtractorError as e:
if 'this video has been' in str(e):
status = str(e).split('been ', 1)[1]
if status == 'expired':
find_mirror(broadcast_id) # archive window closed permanently
else:
raise Prevention
- Download LINE LIVE archives promptly; retention windows are short
- For important broadcasts, record live rather than relying on replays
When it happens
Trigger: Opening a live.line.me broadcast URL whose protocol URLs (HLS/LLHP) yielded no formats and whose broadcastStatus/archiveStatus JSON field is e.g. 'EXPIRED' or 'TERMINATED' — i.e. the replay window closed or the broadcast was removed.
Common situations: LINE LIVE archives expiring after their retention window; broadcasts terminated by policy; following old broadcast links after expiry; attempting to download live-in-progress broadcasts whose archive is not yet generated.
Related errors
- This user is offline.
- This live stream has already finished.
- %s is offline
- Invalid path
- Unauthorized user "%s"
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/3e87474669c68067.
Report an issue: GitHub.