ytdl-org/youtube-dl · error · ExtractorError

No login info available, needed for using %s.

Error message

No login info available, needed for using %s.

What it means

Raised by VimeoBaseInfoExtractor._login when no username is available (netrc/CLI empty) AND the subclass sets _LOGIN_REQUIRED = True. It guards extraction paths (e.g. VimeoIE variants or channel pages requiring auth) that cannot proceed anonymously. expected=True — a configuration precondition, not a site failure.

Source

Thrown at youtube_dl/extractor/vimeo.py:49

    try_get,
    unified_timestamp,
    unsmuggle_url,
    urlencode_postdata,
    urljoin,
    unescapeHTML,
)


class VimeoBaseInfoExtractor(InfoExtractor):
    _NETRC_MACHINE = 'vimeo'
    _LOGIN_REQUIRED = False
    _LOGIN_URL = 'https://vimeo.com/log_in'

    def _login(self):
        username, password = self._get_login_info()
        if username is None:
            if self._LOGIN_REQUIRED:
                raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True)
            return
        webpage = self._download_webpage(
            self._LOGIN_URL, None, 'Downloading login page')
        token, vuid = self._extract_xsrft_and_vuid(webpage)
        data = {
            'action': 'login',
            'email': username,
            'password': password,
            'service': 'vimeo',
            'token': token,
        }
        self._set_vimeo_cookie('vuid', vuid)
        try:
            self._download_webpage(
                self._LOGIN_URL, None, 'Logging in',
                data=urlencode_postdata(data), headers={
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'Referer': self._LOGIN_URL,

View on GitHub (pinned to 956b8c5855)

Solutions

  1. Provide credentials: pass -u user --password pass, or configure a netrc entry for machine vimeo.
  2. Check whether the content is actually public — many videos only need credentials because the URL is a private/unlisted link requiring the owner account.
  3. If you maintain a subclass that sets _LOGIN_REQUIRED unnecessarily, flip it to False and handle auth lazily.
  4. Catch the expected error in batch scripts and prompt for credentials rather than failing silently.

Example fix

# before
raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True)
# after (caller side)
youtube_dl --username me@example.com --password '...' 'https://vimeo.com/...'
Defensive patterns

Strategy: validation

Validate before calling

downloader_params = ydl.params
has_creds = downloader_params.get('username') or netrc_has_machine('vimeo')
if ie_requires_login and not has_creds:
    fail_fast('provide --username/--password or netrc entry for vimeo before extracting')

Try / catch

try:
    ydl.extract_info(url)
except ExtractorError as e:
    if e.expected and 'No login info available' in str(e):
        prompt_for_credentials_then_retry_once()
    else:
        raise

Prevention

When it happens

Trigger: Invoking a Vimeo extractor with _LOGIN_REQUIRED = True (or a subclass like VimeoIE for a logged-in-only page) while --username/-u/netrc provide no credentials; _get_login_info() returns (None, None).

Common situations: Trying to download a private/portfolio video or feed without having configured Vimeo credentials; CI jobs missing ~/.netrc; users assuming public videos need login and hitting subclasses that hard-require it.

Related errors


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