tonhowtf/omniget · warning
Connection timed out. Check your internet and try again.
Error message
Connection timed out. Check your internet and try again.
What it means
This error is produced by yt-dlp error classification in omniget-core. When yt-dlp's stderr contains 'timed out' or 'timeout', the wrapper converts it into a user-friendly anyhow error indicating a network timeout. It signals the yt-dlp subprocess could not reach the media server within the allowed time.
Solutions
- Check basic internet connectivity and retry the download
- Disable VPN/proxy or switch networks, then retry
- Increase the socket timeout with yt-dlp's --socket-timeout flag
- Retry later if the target host is rate-limiting or temporarily down
Example fix
// before
// raw yt-dlp stderr surfaces a cryptic timeout trace
// after
if lower.contains("timed out") || lower.contains("timeout") {
return anyhow!("Connection timed out. Check your internet and try again.");
} Defensive patterns
Strategy: retry
Validate before calling
// quick connectivity probe before invoking yt-dlp
if reqwest::get("https://www.google.com/generate_204").await.is_err() {
eprintln!("No network access; aborting download");
} Try / catch
match result {
Err(e) if e.to_string().contains("timed out") => {
tokio::time::sleep(Duration::from_secs(5)).await;
retry_with_backoff(|| download(), 3).await
}
other => other,
} Prevention
- Probe network reachability before starting large downloads
- Set an explicit --socket-timeout for yt-dlp
- Surface retry UI to the user instead of a dead end
- Warn when a VPN/proxy is active
When it happens
Trigger: Running a yt-dlp download/info extraction whose stderr matches 'timed out' or 'timeout' (case-insensitive) during classify; slow or unstable network, unreachable CDN, or proxy/firewall stalls during media fetch.
Common situations: Users behind corporate proxies or VPNs, weak mobile connections, throttled or blocked hosts (e.g. some CDNs in certain regions), or DNS resolution delays causing yt-dlp HTTP timeouts.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- Download timeout — no data received for 30 seconds
- read timed out after
- connect timeout
- Failed to download yt-dlp: HTTP
- download falhou: HTTP
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/e295643fb9db5169.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/ytdlp.rs:4480
if lower.contains("requested format") && lower.contains("not available") {
return anyhow!(
"Requested format is not available. The download will retry with a compatible format."
);
}
if lower.contains("video unavailable") || lower.contains("not available") {
return anyhow!("Video unavailable or removed.");
}
if lower.contains("private video") {
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| {View on GitHub (pinned to 8600b91f42)