yt-dlp/yt-dlp · error · ExtractorError
{clean_html(payload[0][1:-1])}
Error message
{clean_html(payload[0][1:-1])} What it means
Error "{clean_html(payload[0][1:-1])}" thrown in yt-dlp/yt-dlp.
Source
Thrown at yt_dlp/extractor/vk.py:111
data=urlencode_postdata(login_form))
if re.search(r'onLoginFailed', login_page):
raise ExtractorError(
'Unable to login, incorrect username and/or password', expected=True)
def _download_payload(self, path, video_id, data, fatal=True):
endpoint = f'https://vk.com/{path}.php'
data['al'] = 1
code, payload = self._download_json(
endpoint, video_id, data=urlencode_postdata(data), fatal=fatal,
headers={
'Referer': endpoint,
'X-Requested-With': 'XMLHttpRequest',
})['payload']
if code == '3':
self.raise_login_required()
elif code == '8':
raise ExtractorError(clean_html(payload[0][1:-1]), expected=True)
return payload
class VKIE(VKBaseIE):
IE_NAME = 'vk'
IE_DESC = 'VK'
_EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>https?://vk(?:(?:video)?\.ru|\.com)/video_ext\.php.+?)\1']
_VALID_URL = r'''(?x)
https?://
(?:
(?:
(?:(?:m|new|vksport)\.)?vk(?:(?:video)?\.ru|\.com)/video_|
(?:www\.)?daxab\.com/
)
ext\.php\?(?P<embed_query>.*?\boid=(?P<oid>-?\d+).*?\bid=(?P<id>\d+).*)|
(?:
(?:(?:m|new|vksport)\.)?vk(?:(?:video)?\.ru|\.com)/(?:.+?\?.*?z=)?(?:video|clip)|
(?:www\.)?daxab\.com/embed/View on GitHub (pinned to 81ecd58b13)
Solutions
- Read the VK error message shown in the payload for the cause
- Log in via a browser and export cookies to bypass the failing login path
- Update yt-dlp if VK changed its login flow
When it happens
Trigger: VK's login response contains an HTML error payload (e.g. security check or blocked login) that the extractor cleans and relays as the error message.
Common situations: See trigger scenarios.
AI-assisted analysis of yt-dlp/yt-dlp@81ecd58b13 (2026-08-22).
Data as JSON: /api/errors/bdaa3c25bb71894a.
Report an issue: GitHub.