{"record":{"id":"75b7df08c023ad28","repo":"ytdl-org/youtube-dl","slug":"we-are-sorry-but-the-live-broadcast-has-been-canc","errorCode":null,"errorMessage":"We are sorry, but the live broadcast has been canceled.","messagePattern":"We are sorry, but the live broadcast has been canceled\\.","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"warning","filePath":"youtube_dl/extractor/vlive.py","lineNumber":173,"sourceCode":"                    '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',\n        },\n        'playlist_count': 3,","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vlive.py#L155-L191","documentation":"VLive cancellation error: when video.exposeStatus == 'CANCEL', the announced broadcast was canceled by the broadcaster, so nothing will ever be downloadable. Raised with expected=True.","triggerScenarios":"Extracting a VLive video whose API metadata has exposeStatus == 'CANCEL'.","commonSituations":"Following event pages where the stream got canceled; stale announcement links shared on social media.","solutions":["Remove the URL from any download queue — the content will not appear","Check the broadcaster's post/board for a rescheduled link"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from youtube_dl.utils import ExtractorError\ntry:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if 'has been canceled' in str(e):\n        remove_from_queue(url)  # permanent, never retried","preventionTips":["Treat cancellation as permanent — remove URLs from queues immediately","Watch the broadcaster's board for rescheduled links instead of retrying"],"tags":["vlive","canceled","livestream"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}