{"record":{"id":"0d9e6674dfd1bdd0","repo":"yt-dlp/yt-dlp","slug":"this-video-is-password-protected-use-the-video-0d9e66","errorCode":null,"errorMessage":"This video is password-protected; use the --video-password option","messagePattern":"This video is password-protected; use the --video-password option","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"yt_dlp/extractor/sproutvideo.py","lineNumber":188,"sourceCode":"        'url': 'https://how-to-video.vids.io/videos/799cd8b11c10efc1f0/how-to-video-live-streaming',\n        'md5': '9bbbb2c0c0739eb163b80f87b8d77c9e',\n        'info_dict': {\n            'id': '799cd8b11c10efc1f0',\n            'ext': 'mp4',\n            'title': 'How to Video: Live Streaming',\n            'duration': 2787,\n            'thumbnail': r're:https?://images\\.sproutvideo\\.com/.+\\.jpg',\n        },\n    }]\n\n    def _real_extract(self, url):\n        video_id, display_id = self._match_valid_url(url).group('id', 'display_id')\n        webpage, urlh = self._download_webpage_handle(url, display_id, expected_status=403)\n\n        if urlh.status == 403:\n            password = self.get_param('videopassword')\n            if not password:\n                raise ExtractorError(\n                    'This video is password-protected; use the --video-password option', expected=True)\n            try:\n                webpage = self._download_webpage(\n                    url, display_id, 'Submitting video password',\n                    data=urlencode_postdata({\n                        'password': password,\n                        **self._hidden_inputs(webpage),\n                    }))\n                # Requests with user's session cookie `_sproutvideo_session` are now authorized\n            except ExtractorError as e:\n                if isinstance(e.cause, HTTPError) and e.cause.status == 403:\n                    raise ExtractorError('Incorrect password', expected=True)\n                raise\n\n        if embed_url := next(SproutVideoIE._extract_embed_urls(url, webpage), None):\n            return self.url_result(embed_url, SproutVideoIE, video_id)\n\n        raise ExtractorError('Unable to extract any SproutVideo embed url')","sourceCodeStart":170,"sourceCodeEnd":206,"githubUrl":"https://github.com/yt-dlp/yt-dlp/blob/81ecd58b1394793e6da9998cc19fdb45657f1685/yt_dlp/extractor/sproutvideo.py#L170-L206","documentation":"Error \"This video is password-protected; use the --video-password option\" thrown in yt-dlp/yt-dlp.","triggerScenarios":"Thrown at yt_dlp/extractor/sproutvideo.py:188 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass the video password with --video-password"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"81ecd58b1394793e6da9998cc19fdb45657f1685","analyzedAt":"2026-08-22T12:21:25.439Z","schemaVersion":2},"datasetVersion":"2026-08-22T14:17:55.899Z"}