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

  1. Inspect the exact appended status string in the message to learn the new state
  2. Update yt-dlp (actively maintained) which has newer VLive/Weverse handling
  3. 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

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


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