ytdl-org/youtube-dl · error · ExtractorError

Wrong password

Error message

Wrong password

What it means

Raised by VimeoAlbumIE after the showcase auth endpoint (vimeo.com/showcase/<id>/auth) returns HTTP 401 during password verification. The extractor POSTs the supplied password plus the xsrft token and interprets any 401 as a rejected credential. It is expected=True so it surfaces as a clean user error.

Source

Thrown at youtube_dl/extractor/vimeo.py:1012

        if try_get(album, lambda x: x['privacy']['view']) == 'password':
            password = self._downloader.params.get('videopassword')
            if not password:
                raise ExtractorError(
                    'This album is protected by a password, use the --video-password option',
                    expected=True)
            self._set_vimeo_cookie('vuid', viewer['vuid'])
            try:
                hashed_pass = self._download_json(
                    'https://vimeo.com/showcase/%s/auth' % album_id,
                    album_id, 'Verifying the password', data=urlencode_postdata({
                        'password': password,
                        'token': viewer['xsrft'],
                    }), headers={
                        'X-Requested-With': 'XMLHttpRequest',
                    })['hashed_pass']
            except ExtractorError as e:
                if isinstance(e.cause, compat_HTTPError) and e.cause.code == 401:
                    raise ExtractorError('Wrong password', expected=True)
                raise
        entries = OnDemandPagedList(functools.partial(
            self._fetch_page, album_id, jwt, hashed_pass), self._PAGE_SIZE)
        return self.playlist_result(
            entries, album_id, album.get('name'), album.get('description'))


class VimeoGroupsIE(VimeoChannelIE):
    IE_NAME = 'vimeo:group'
    _VALID_URL = r'https://vimeo\.com/groups/(?P<id>[^/]+)(?:/(?!videos?/\d+)|$)'
    _TESTS = [{
        'url': 'https://vimeo.com/groups/kattykay',
        'info_dict': {
            'id': 'kattykay',
            'title': 'Katty Kay',
        },
        'playlist_mincount': 27,
    }]

View on GitHub (pinned to 956b8c5855)

Solutions

  1. Double-check and re-enter the correct --video-password value
  2. Confirm the password in a browser by logging into the showcase page manually, then retry
  3. Update to a recent youtube-dl/yt-dlp in case Vimeo changed the auth handshake

Example fix

# before
youtube-dl --video-password hunter2 https://vimeo.com/album/12345
# after (use the real showcase password)
youtube-dl --video-password 'C0rr3ct-P4ss' https://vimeo.com/album/12345
Defensive patterns

Strategy: try-catch

Try / catch

from youtube_dl.utils import ExtractorError
try:
    ydl.extract_info(album_url)
except ExtractorError as e:
    if 'Wrong password' in str(e):
        # re-prompt, do not loop blindly
        opts['videopassword'] = prompt_new_password()
        raise  # or retry once with new YoutubeDL(opts)

Prevention

When it happens

Trigger: POSTing a wrong --video-password to https://vimeo.com/showcase/<id>/auth with X-Requested-With: XMLHttpRequest, causing the wrapped compat_HTTPError with code 401 to be converted to 'Wrong password'.

Common situations: Typo in the password; the password was rotated by the album owner; copying a password with trailing whitespace/newline from a shared document.

Related errors


AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14). Data as JSON: /api/errors/0b19eae3c5d7f0a8. Report an issue: GitHub.