tonhowtf/omniget · error
Failed to access the page. Check the link and your…
Error message
Failed to access the page. Check the link and your connection.
What it means
Raised when yt-dlp's stderr contains both 'unable to download' and 'webpage', meaning yt-dlp could not fetch the page HTML itself. The wrapper reframes it as a page-access problem related to the link or the network.
Solutions
- Open the URL in a browser to confirm the page loads and the link is correct
- Pass cookies with --cookies-from-browser or --cookies for auth-walled pages
- Add --user-agent or proxy options if the site blocks the default client
- Retry after a delay if the site is temporarily down or rate-limiting
Defensive patterns
Strategy: retry
Validate before calling
// probe the page with a plain HTTP request first
let resp = reqwest::get(url).await?;
if !resp.status().is_success() {
eprintln!("Page not reachable ({}); fix link or use proxy/cookies", resp.status());
} Try / catch
match result {
Err(e) if e.to_string().contains("Failed to access the page") => {
retry_with_backoff(|| download(), 2).await
}
other => other,
} Prevention
- Retry transient page-fetch failures with backoff
- Configure cookies/user-agent for bot-protected sites
- Support a proxy option for blocked networks
- Detect Cloudflare challenges and warn the user
When it happens
Trigger: yt-dlp fails its initial HTTP request for the watch/page URL: HTTP errors, connection resets, bot checks/Cloudflare challenges, or geo/ISP blocks on the page itself.
Common situations: Sites behind Cloudflare bot protection, links behind paywalls requiring cookies, temporary site outages, or IP-level blocks after heavy scraping.
Understand the failure class
Background: 'Something went wrong' / 'Request failed (500)' / 'HTTP error! status: 404' — what failed HTTP requests actually mean and how to find the real cause — this error's family across 28 libraries.
Related errors
- Failed to download yt-dlp: HTTP
- Access denied (403). The video may be private or…
- acesso negado (HTTP ). Capture os cookies da sua conta no…
- Connection timed out. Check your internet and try again.
- criar perfil
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/01893bff6ef10c06.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/ytdlp.rs:4489
return anyhow!("This video is private.");
}
if lower.contains("copyright") {
return anyhow!("Video blocked due to copyright.");
}
if lower.contains("geo") && lower.contains("block") {
return anyhow!("Video restricted in your region.");
}
if lower.contains("timed out") || lower.contains("timeout") {
return anyhow!("Connection timed out. Check your internet and try again.");
}
if lower.contains("ffmpeg") && (lower.contains("not found") || lower.contains("no such file")) {
return anyhow!("FFmpeg not found. Install FFmpeg to download this format.");
}
if lower.contains("unsupported url") || lower.contains("no suitable infojson") {
return anyhow!("Unsupported URL. Check that the link is correct.");
}
if lower.contains("unable to download") && lower.contains("webpage") {
return anyhow!("Failed to access the page. Check the link and your connection.");
}
if lower.contains("is not a valid url") || lower.contains("no video formats") {
return anyhow!("No video formats found for this link.");
}
let last_error_line = stderr
.lines()
.rev()
.find(|l| {
let t = l.trim().to_lowercase();
t.starts_with("error:") || t.starts_with("error ")
})
.unwrap_or("")
.trim();
let msg = if !last_error_line.is_empty() {
last_error_line
.strip_prefix("ERROR: ")View on GitHub (pinned to 8600b91f42)