{"record":{"id":"bd02babaffd9af53","repo":"ytdl-org/youtube-dl","slug":"audio-is-still-queued-for-processing","errorCode":null,"errorMessage":"Audio is still queued for processing","messagePattern":"Audio is still queued for processing","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"warning","filePath":"youtube_dl/extractor/voicerepublic.py","lineNumber":38,"sourceCode":"            'display_id': 'watching-the-watchers-building-a-sousveillance-state',\n            'ext': 'm4a',\n            'title': 'Watching the Watchers: Building a Sousveillance State',\n            'description': 'Secret surveillance programs have metadata too. The people and companies that operate secret surveillance programs can be surveilled.',\n            'duration': 1556,\n            'view_count': int,\n        }\n    }, {\n        'url': 'http://voicerepublic.com/embed/watching-the-watchers-building-a-sousveillance-state',\n        'only_matching': True,\n    }]\n\n    def _real_extract(self, url):\n        display_id = self._match_id(url)\n\n        webpage = self._download_webpage(url, display_id)\n\n        if '>Queued for processing, please stand by...<' in webpage:\n            raise ExtractorError(\n                'Audio is still queued for processing', expected=True)\n\n        talk = self._parse_json(self._search_regex(\n            r'initialSnapshot\\s*=\\s*({.+?});',\n            webpage, 'talk'), display_id)['talk']\n        title = talk['title']\n        formats = [{\n            'url': urljoin(url, talk_url),\n            'format_id': format_id,\n            'ext': determine_ext(talk_url) or format_id,\n            'vcodec': 'none',\n        } for format_id, talk_url in talk['media_links'].items()]\n        self._sort_formats(formats)\n\n        return {\n            'id': compat_str(talk.get('id') or display_id),\n            'display_id': display_id,\n            'title': title,","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/voicerepublic.py#L20-L56","documentation":"VoiceRepublic processing error: the talk page contains '>Queued for processing, please stand by...<', meaning the recorded audio has not been converted/published yet. The extractor raises 'Audio is still queued for processing' with expected=True.","triggerScenarios":"Extracting a voicerepublic.com talk URL shortly after the live talk ended, while the media is still in the site's processing queue.","commonSituations":"Automated archives that capture talk URLs as events end; impatient retries within the processing window.","solutions":["Wait for processing to complete (usually minutes) and retry the same URL","Schedule a retry with a delay rather than rapid re-polling","Confirm the talk page in a browser shows a player before retrying"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"from youtube_dl.utils import ExtractorError\nimport time\nfor attempt in range(5):\n    try:\n        ydl.extract_info(url); break\n    except ExtractorError as e:\n        if 'queued for processing' not in str(e).lower():\n            raise\n        time.sleep(300)","preventionTips":["Delay post-event capture by 15-30 minutes to let processing finish","Use spaced retries, not tight loops","Confirm the talk page shows a player in a browser before retrying"],"tags":["voicerepublic","processing","retry-later","audio"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}