ytdl-org/youtube-dl · error · ExtractorError
Unknown status
Error message
Unknown status
What it means
VLive defensive fallback: the video's status field matches none of the handled states (LIVE, ENDED, RESERVED, CANCELED), so the extractor raises 'Unknown status ' + status with expected=True implicitly absent — an unexpected-state marker exposing an unhandled API value.
Source
Thrown at youtube_dl/extractor/vlive.py:177
info = get_common_fields()
info.update({
'title': self._live_title(video['title']),
'id': video_id,
'formats': formats,
'is_live': True,
})
return info
elif status == 'ENDED':
raise ExtractorError(
'Uploading for replay. Please wait...', expected=True)
elif status == 'RESERVED':
raise ExtractorError('Coming soon!', expected=True)
elif video.get('exposeStatus') == 'CANCEL':
raise ExtractorError(
'We are sorry, but the live broadcast has been canceled.',
expected=True)
else:
raise ExtractorError('Unknown status ' + status)
class VLivePostIE(VLiveIE):
IE_NAME = 'vlive:post'
_VALID_URL = r'https?://(?:(?:www|m)\.)?vlive\.tv/post/(?P<id>\d-\d+)'
_TESTS = [{
# uploadType = SOS
'url': 'https://www.vlive.tv/post/1-20088044',
'info_dict': {
'id': '1-20088044',
'title': 'Hola estrellitas la tierra les dice hola (si era así no?) Ha...',
'description': 'md5:fab8a1e50e6e51608907f46c7fa4b407',
},
'playlist_count': 3,
}, {
# uploadType = V
'url': 'https://www.vlive.tv/post/1-20087926',
'info_dict': {View on GitHub (pinned to 956b8c5855)
Solutions
- Inspect the exact appended status string in the message to learn the new state
- Update yt-dlp (actively maintained) which has newer VLive/Weverse handling
- Retry later in case the state is transient (e.g. processing transition)
Defensive patterns
Strategy: try-catch
Try / catch
from youtube_dl.utils import ExtractorError
try:
ydl.extract_info(url)
except ExtractorError as e:
if str(e).startswith('Unknown status'):
log('New VLive status seen: %s — update extractor' % str(e))
report_upstream(url) Prevention
- Log the exact appended status string for diagnosis
- Keep yt-dlp updated for new VLive/Weverse statuses
- Retry once after a delay — some statuses are transient transitions
When it happens
Trigger: VLive's API returns a new or rare status value (e.g. a post-migration Weverse state) that the if/elif chain does not cover.
Common situations: Site/API evolution after the Weverse migration introducing new statuses; intermittent intermediate states during replay processing.
Related errors
- Letv cloud returned an unknown error
- Invalid rendition field.
- Could not find video title
- Found song but don't know how to download it
- couldn't extract vid and key
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/e7d30b9bfdc21d1f.
Report an issue: GitHub.