{"record":{"id":"37abf5236606f137","repo":"yt-dlp/yt-dlp","slug":"video-not-yet-available-with-unknown-availability","errorCode":null,"errorMessage":"Video not yet available with unknown availability","messagePattern":"Video not yet available with unknown availability","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/servus.py","lineNumber":142,"sourceCode":"            raise ExtractorError('No videoUrl and no information about errors')\n\n        elif 'FSK_BLOCKED' in playability_errors:\n            details = traverse_obj(video, ('playabilityErrorDetails', 'FSK_BLOCKED'), expected_type=dict)\n            message = format_field(''.join((\n                format_field(details, 'minEveningHour', ' from %02d:00'),\n                format_field(details, 'maxMorningHour', ' to %02d:00'),\n                format_field(details, 'minAge', ' (Minimum age %d)'),\n            )), None, 'Only available%s') or 'Blocked by FSK with unknown availability'\n\n        elif 'NOT_YET_AVAILABLE' in playability_errors:\n            message = format_field(\n                video, (('playabilityErrorDetails', 'NOT_YET_AVAILABLE', 'availableFrom'), 'currentSunrise'),\n                'Only available from %s') or 'Video not yet available with unknown availability'\n\n        else:\n            message = f'Video unavailable: {\", \".join(playability_errors)}'\n\n        raise ExtractorError(message, expected=True)\n","sourceCodeStart":124,"sourceCodeEnd":143,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/servus.py#L124-L143","documentation":"The NOT_YET_AVAILABLE branch without details: neither availableFrom nor currentSunrise was present, so only the generic fallback message remains. The video exists but is gated on a future time the API did not disclose.","triggerScenarios":"playabilityErrors contains 'NOT_YET_AVAILABLE' and both the availableFrom and currentSunrise lookups return nothing.","commonSituations":"Early-listed premieres without schedule metadata; API variants omitting timestamps; schema drift after a servus.com update.","solutions":["Retry later and check the Servus listing for an air date","Update yt-dlp in case timestamp parsing changed","If it persists on clearly-aired content, report the payload upstream"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"from yt_dlp.utils import ExtractorError\n\ntry:\n    info = ydl.extract_info(url, download=False)\nexcept ExtractorError as e:\n    if 'not yet available' not in str(e):\n        raise\n    # no timestamp given; back off and try again later\n    schedule_retry(hours_later=12)","preventionTips":["Back off gradually for unknown-availability content","Check the Servus listing for an air date to schedule precisely","Do not tight-loop retries for NOT_YET_AVAILABLE titles"],"tags":["availability","premiere","servus","missing-details"],"backgroundTag":"content-not-yet-available","analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}