yt-dlp/yt-dlp · error · ExtractorError
Unable to login: {message}
Error message
Unable to login: {message} What it means
Error "Unable to login: {message}" thrown in yt-dlp/yt-dlp.
Source
Thrown at yt_dlp/extractor/pornhub.py:129
})
response = self._download_json(
f'https://www.{host}/front/authenticate', None,
f'Logging in to {site}',
data=urlencode_postdata(login_form),
headers={
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Referer': login_url,
'X-Requested-With': 'XMLHttpRequest',
}, impersonate=True)
if response.get('success') == '1':
self._logged_in = True
return
message = response.get('message')
if message is not None:
raise ExtractorError(
f'Unable to login: {message}', expected=True)
raise ExtractorError('Unable to log in')
class PornHubIE(PornHubBaseIE):
IE_DESC = 'PornHub and Thumbzilla'
_VALID_URL = rf'''(?x)
https?://
(?:
(?:[a-zA-Z0-9.-]+\.)?
{PornHubBaseIE._PORNHUB_HOST_RE}
/(?:(?:view_video\.php|video/show)\?viewkey=|embed/)|
(?:www\.)?thumbzilla\.com/video/
)
(?P<id>[\da-z]+)
'''
_EMBED_REGEX = [r'<iframe[^>]+?src=["\'](?P<url>(?:https?:)?//(?:www\.)?pornhub(?:premium)?\.(?:com|net|org)/embed/[\da-z]+)']View on GitHub (pinned to 81ecd58b13)
Solutions
- Check that your username and password are correct
- Pass fresh browser cookies with --cookies or --cookies-from-browser
When it happens
Trigger: Thrown at yt_dlp/extractor/pornhub.py:129 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of yt-dlp/yt-dlp@81ecd58b13 (2026-08-22).
Data as JSON: /api/errors/7f8a99ebeda68010.
Report an issue: GitHub.