{"record":{"id":"e750a791f63366b5","repo":"ytdl-org/youtube-dl","slug":"no-login-info-available-needed-for-using-s-e750a7","errorCode":null,"errorMessage":"No login info available, needed for using %s.","messagePattern":"No login info available, needed for using (.+?)\\.","errorType":"exception","errorClass":"ExtractorError","httpStatus":null,"severity":"error","filePath":"youtube_dl/extractor/vimeo.py","lineNumber":49,"sourceCode":"    try_get,\n    unified_timestamp,\n    unsmuggle_url,\n    urlencode_postdata,\n    urljoin,\n    unescapeHTML,\n)\n\n\nclass VimeoBaseInfoExtractor(InfoExtractor):\n    _NETRC_MACHINE = 'vimeo'\n    _LOGIN_REQUIRED = False\n    _LOGIN_URL = 'https://vimeo.com/log_in'\n\n    def _login(self):\n        username, password = self._get_login_info()\n        if username is None:\n            if self._LOGIN_REQUIRED:\n                raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True)\n            return\n        webpage = self._download_webpage(\n            self._LOGIN_URL, None, 'Downloading login page')\n        token, vuid = self._extract_xsrft_and_vuid(webpage)\n        data = {\n            'action': 'login',\n            'email': username,\n            'password': password,\n            'service': 'vimeo',\n            'token': token,\n        }\n        self._set_vimeo_cookie('vuid', vuid)\n        try:\n            self._download_webpage(\n                self._LOGIN_URL, None, 'Logging in',\n                data=urlencode_postdata(data), headers={\n                    'Content-Type': 'application/x-www-form-urlencoded',\n                    'Referer': self._LOGIN_URL,","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/extractor/vimeo.py#L31-L67","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","solutions":["Provide credentials: pass -u user --password pass, or configure a netrc entry for machine vimeo.","Check whether the content is actually public — many videos only need credentials because the URL is a private/unlisted link requiring the owner account.","If you maintain a subclass that sets _LOGIN_REQUIRED unnecessarily, flip it to False and handle auth lazily.","Catch the expected error in batch scripts and prompt for credentials rather than failing silently."],"exampleFix":"# before\nraise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True)\n# after (caller side)\nyoutube_dl --username me@example.com --password '...' 'https://vimeo.com/...'","handlingStrategy":"validation","validationCode":"downloader_params = ydl.params\nhas_creds = downloader_params.get('username') or netrc_has_machine('vimeo')\nif ie_requires_login and not has_creds:\n    fail_fast('provide --username/--password or netrc entry for vimeo before extracting')","typeGuard":null,"tryCatchPattern":"try:\n    ydl.extract_info(url)\nexcept ExtractorError as e:\n    if e.expected and 'No login info available' in str(e):\n        prompt_for_credentials_then_retry_once()\n    else:\n        raise","preventionTips":["Configure ~/.netrc with the vimeo machine entry once, in scripts and CI alike.","Decide upfront whether your target URLs need auth; don't discover it mid-batch.","Fail fast on missing credentials instead of half-running a job."],"tags":["authentication","configuration","vimeo","credentials"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}