{"record":{"id":"13bc1c7a58a5139e","repo":"ytdl-org/youtube-dl","slug":"coming-soon","errorCode":null,"errorMessage":"Coming soon!","messagePattern":"Coming soon!","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"warning","filePath":"youtube_dl/extractor/vlive.py","lineNumber":171,"sourceCode":"            if status == 'ON_AIR':\n                stream_url = self._call_api(\n                    'old/v3/live/%s/playInfo',\n                    video_id)['result']['adaptiveStreamUrl']\n                formats = self._extract_m3u8_formats(stream_url, video_id, 'mp4')\n                self._sort_formats(formats)\n                info = get_common_fields()\n                info.update({\n                    'title': self._live_title(video['title']),\n                    'id': video_id,\n                    'formats': formats,\n                    'is_live': True,\n                })\n                return info\n            elif status == 'ENDED':\n                raise ExtractorError(\n                    'Uploading for replay. Please wait...', expected=True)\n            elif status == 'RESERVED':\n                raise ExtractorError('Coming soon!', expected=True)\n            elif video.get('exposeStatus') == 'CANCEL':\n                raise ExtractorError(\n                    'We are sorry, but the live broadcast has been canceled.',\n                    expected=True)\n            else:\n                raise ExtractorError('Unknown status ' + status)\n\n\nclass VLivePostIE(VLiveIE):\n    IE_NAME = 'vlive:post'\n    _VALID_URL = r'https?://(?:(?:www|m)\\.)?vlive\\.tv/post/(?P<id>\\d-\\d+)'\n    _TESTS = [{\n        # uploadType = SOS\n        'url': 'https://www.vlive.tv/post/1-20088044',\n        'info_dict': {\n            'id': '1-20088044',\n            'title': 'Hola estrellitas la tierra les dice hola (si era así no?) Ha...',\n            'description': 'md5:fab8a1e50e6e51608907f46c7fa4b407',","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vlive.py#L153-L189","documentation":"VLive scheduling error: the video's status field is 'RESERVED', meaning the broadcast is announced but has not started. The extractor raises 'Coming soon!' with expected=True because no stream or VOD exists yet.","triggerScenarios":"Extracting a VLive URL whose API status == 'RESERVED' (upcoming/announced broadcast).","commonSituations":"Pre-registering download jobs for announced livestreams; clicking a notification link before the broadcast begins.","solutions":["Wait until the scheduled broadcast time and retry","Retry while status is LIVE if you want the live stream itself","Retry after ENDED->replay upload for the VOD"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"from youtube_dl.utils import ExtractorError\ntry:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if 'Coming soon' in str(e):\n        schedule_retry(url, at=broadcast_start_time)\n    else:\n        raise","preventionTips":["Look up the scheduled start time and delay extraction until then","Don't poll RESERVED URLs frequently — wasteful and unhelpful","Distinguish RESERVED (wait) from CANCELED (drop) in queue handlers"],"tags":["vlive","livestream","scheduled","not-yet-available"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}