tonhowtf/omniget · error
o yt-dlp saiu com erro
Error message
o yt-dlp saiu com erro
What it means
yt-dlp spawned successfully but exited with a non-zero status code. If the collected stderr tail is empty, this generic message is used; otherwise the actual stderr tail is returned as the error. It indicates the download itself failed (network, 403, format unavailable, etc.).
Solutions
- Update yt-dlp to the latest version (YouTube changes break old versions)
- Check network connectivity and URL validity
- Retry the item — the tool supports retry_failed in its options
- Capture stderr elsewhere (logs) to see the real cause when the tail is empty
Example fix
// before
run(opts, progress).await?; // fails with generic message
// after
match run(opts, progress).await {
Err(e) if e.to_string().contains("o yt-dlp saiu com erro") => {
eprintln!("yt-dlp failed; update yt-dlp and retry");
}
other => other?,
} Defensive patterns
Strategy: retry
Validate before calling
// pre-check: keep yt-dlp updated
let ver = crate::core::ytdlp::ytdlp_command("yt-dlp").arg("--version").output().await?; Try / catch
match run(opts, progress).await {
Err(e) if e.to_string().contains("o yt-dlp saiu com erro") => {
// retry with retry_failed or after updating yt-dlp
}
other => other?,
} Prevention
- Update yt-dlp regularly (YouTube breakage)
- Enable retry_failed in options for flaky networks
- Log full stderr to diagnose when the tail is empty
When it happens
Trigger: `download_one` waits on `child.wait().await`, sees `!status.success()`, and stderr produced no useful text (empty tail) so the fallback message is thrown.
Common situations: yt-dlp crashing before printing anything; killed by signal; stderr not captured due to pipe issue; very old yt-dlp version failing silently against current YouTube.
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
- o yt-dlp não baixou nada
- Failed to download yt-dlp: HTTP
- Track sem metadata pra resolver no YouTube
- download de falhou: HTTP
- nao foi possivel buscar
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/6f3e2f35ade52be2.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/yt_archive.rs:693
let err_task = tokio::spawn(async move {
let mut tail: Vec<String> = Vec::new();
if let Some(e) = stderr {
let mut lines = BufReader::new(e).lines();
while let Ok(Some(line)) = lines.next_line().await {
if tail.len() == 3 {
tail.remove(0);
}
tail.push(line);
}
}
tail.join(" / ")
});
let status = child.wait().await?;
let file = out_task.await.unwrap_or(None);
let tail = err_task.await.unwrap_or_default();
if !status.success() {
return Err(anyhow!(
"{}",
if tail.trim().is_empty() {
"o yt-dlp saiu com erro".to_string()
} else {
tail
}
));
}
Ok(file)
}
#[cfg(test)]
mod tests {
use super::*;
const FLAT: &str = r#"{
"_type": "playlist",
"id": "PL123",View on GitHub (pinned to 8600b91f42)