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
- Import cookies for the target site in Settings → Cookies, then retry the download.
- Export cookies from a logged-in browser session (Netscape format) and re-import if the first attempt fails.
- Update yt-dlp, as newer versions sometimes bypass or change login/bot-check handling.
- 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
- Import cookies before downloading members-only or age-restricted media
- Re-export cookies when browser sessions expire
- Watch for 'sign in to confirm' bot-checks and back off before retrying
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
- o site respondeu — a sessão salva no gerenciador de cookies…
- Access denied (403). The video may be private or…
- This video is private.
- No valid cookies found in file (expected Netscape format)
- Unrecognized cookie format. Accepted: Netscape (yt-dlp)…
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)