{"record":{"id":"f959b2dbd3f5bf32","repo":"ytdl-org/youtube-dl","slug":"unable-to-login-s-f959b2","errorCode":null,"errorMessage":"Unable to login: %s","messagePattern":"Unable to login: (.+?)","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/facebook.py","lineNumber":350,"sourceCode":"            'lsd': lsd,\n            'lgnrnd': lgnrnd,\n            'next': 'http://facebook.com/home.php',\n            'default_persistent': '0',\n            'legacy_return': '1',\n            'timezone': '-60',\n            'trynum': '1',\n        }\n        request = sanitized_Request(self._LOGIN_URL, urlencode_postdata(login_form))\n        request.add_header('Content-Type', 'application/x-www-form-urlencoded')\n        try:\n            login_results = self._download_webpage(request, None,\n                                                   note='Logging in', errnote='unable to fetch login page')\n            if re.search(r'<form(.*)name=\"login\"(.*)</form>', login_results) is not None:\n                error = self._html_search_regex(\n                    r'(?s)<div[^>]+class=([\"\\']).*?login_error_box.*?\\1[^>]*><div[^>]*>.*?</div><div[^>]*>(?P<error>.+?)</div>',\n                    login_results, 'login error', default=None, group='error')\n                if error:\n                    raise ExtractorError('Unable to login: %s' % error, expected=True)\n                self._downloader.report_warning('unable to log in: bad username/password, or exceeded login rate limit (~3/min). Check credentials or wait.')\n                return\n\n            fb_dtsg = self._search_regex(\n                r'name=\"fb_dtsg\" value=\"(.+?)\"', login_results, 'fb_dtsg', default=None)\n            h = self._search_regex(\n                r'name=\"h\"\\s+(?:\\w+=\"[^\"]+\"\\s+)*?value=\"([^\"]+)\"', login_results, 'h', default=None)\n\n            if not fb_dtsg or not h:\n                return\n\n            check_form = {\n                'fb_dtsg': fb_dtsg,\n                'h': h,\n                'name_action_selected': 'dont_save',\n            }\n            check_req = sanitized_Request(self._CHECKPOINT_URL, urlencode_postdata(check_form))\n            check_req.add_header('Content-Type', 'application/x-www-form-urlencoded')","sourceCodeStart":332,"sourceCodeEnd":368,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/facebook.py#L332-L368","documentation":"Error \"Unable to login: %s\" thrown in ytdl-org/youtube-dl.","triggerScenarios":"Thrown at youtube_dl/extractor/facebook.py:350 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check your Facebook credentials; pass cookies with --cookies if login fails."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}