tonhowtf/omniget · error

This video requires login. Import cookies for this site in…

Error message

This video requires login. Import cookies for this site in Settings → Cookies, then retry.

What it means

translate_ytdlp_error at ytdlp.rs:4442 maps login-gated stderr patterns ('sign in to confirm', 'login required', several Chinese login prompts, or a members-only video marker) to this message. The site requires an authenticated session to expose the video, so extraction cannot proceed anonymously. The library throws it to tell the user to supply cookies.

Solutions

  1. Import cookies for the target site in Settings → Cookies, then retry the download.
  2. Export cookies from a logged-in browser session (Netscape format) and re-import if the first attempt fails.
  3. Update yt-dlp, as newer versions sometimes bypass or change login/bot-check handling.
  4. If the video is members-only, ensure the cookies come from an account with the required membership.
Defensive patterns

Strategy: validation

Validate before calling

// Verify cookies exist and are non-expired before queuing a login-gated site
function hasFreshCookies(site) {
  const jar = loadCookieJar(site);
  return jar && jar.cookies.length > 0 && new Date(jar.expiresAt) > new Date();
}
if (!hasFreshCookies('youtube')) promptCookieImport();

Try / catch

try {
  await download(url);
} catch (e) {
  if (isLoginRequired(e)) notifyUser('Import cookies in Settings → Cookies, then retry');
  else throw e;
}

Prevention

When it happens

Trigger: yt-dlp stderr matches 'sign in to confirm', 'login required', '请先登录', '需要登录', '登录后可', '仅登录用户', or simultaneously 'this video is only available' and 'members' — e.g. YouTube's bot/login check or members-only content during extraction.

Common situations: YouTube returning 'Sign in to confirm you're not a bot'; age-restricted videos without cookies; Patreon/YouTube members-only uploads; site-localized Chinese login walls on region-specific platforms.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/fe0f0b07a6221e29. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/ytdlp.rs:4442

            "Console encoding error (non-UTF-8 locale). Update yt-dlp in Settings → Dependencies, or run `chcp 65001` in a terminal and reopen the app."
        );
    }

    if lower.contains("http error 429") {
        return anyhow!("Server returned error 429 (too many requests). Try again later.");
    }
    if lower.contains("http error 403") || lower.contains("forbidden") {
        return anyhow!("Access denied (403). The video may be private or region-restricted.");
    }
    if lower.contains("sign in to confirm")
        || lower.contains("login required")
        || stderr.contains("请先登录")
        || stderr.contains("需要登录")
        || stderr.contains("登录后可")
        || stderr.contains("仅登录用户")
        || lower.contains("this video is only available") && lower.contains("members")
    {
        return anyhow!(
            "This video requires login. Import cookies for this site in Settings → Cookies, then retry."
        );
    }
    if lower.contains("invalid data found when processing input") {
        return anyhow!(
            "Downloaded streams are DRM-protected and cannot be merged. This content is not supported."
        );
    }
    if lower.contains("nsig extraction failed") || lower.contains("nsig") {
        return anyhow!("Video extraction failed. Update yt-dlp or try again.");
    }
    if lower.contains("cannot parse data")
        || lower.contains("please report this issue")
        || (lower.contains("confirm you are on the latest version") && lower.contains("yt-dlp"))
    {
        return anyhow!(
            "yt-dlp extractor is broken for this site. Update yt-dlp in Settings → Dependencies, then retry."
        );

View on GitHub (pinned to 8600b91f42)