tonhowtf/omniget · error
yt-dlp extractor is broken for this site. Update yt-dlp in S
Error message
yt-dlp extractor is broken for this site. Update yt-dlp in Settings → Dependencies, then retry.
What it means
translate_ytdlp_error at ytdlp.rs:4458 maps stderr matching 'cannot parse data', 'please report this issue', or ('confirm you are on the latest version' plus 'yt-dlp') to this message. yt-dlp's extractor for the site encountered markup/data it cannot interpret, indicating a broken or outdated extractor rather than a user mistake. The library throws it to direct the user to update yt-dlp.
Solutions
- Update yt-dlp in Settings → Dependencies and retry.
- Try the nightly/master yt-dlp build if the stable release predates the site change.
- Verify the URL is a supported page of that site (not an embedded/stripped variant).
- If it persists on the latest version, report the issue upstream to yt-dlp.
Example fix
// before: failing pinned version
// yt-dlp 2024.03.10 -> 'unable to extract ... cannot parse data'
// after: upgrade to latest
let status = Command::new("yt-dlp").arg("-U").status()?; Defensive patterns
Strategy: retry
Validate before calling
// Surface yt-dlp's own update hint before extraction fails
const { stderr } = await exec(`yt-dlp --simulate --skip-download ${url}`);
if (/latest version|cannot parse/i.test(stderr)) await exec('yt-dlp -U'); Try / catch
try {
await download(url);
} catch (e) {
if (isExtractorBroken(e)) {
await exec('yt-dlp -U');
await download(url); // single retry after update
} else throw e;
} Prevention
- Ship an update mechanism for yt-dlp (stable or nightly channel)
- Test representative URLs after every yt-dlp upgrade
- Report persistent extractor breakage upstream instead of patching around it
When it happens
Trigger: yt-dlp emits 'unable to extract ... cannot parse data', a 'please report this issue' bug-report trailer, or 'please confirm you are on the latest version' during extraction for the target URL.
Common situations: A site redesigned its pages so the extractor's regexes no longer match; running an old yt-dlp build shipped with the app; niche sites whose extractors regressed upstream.
Related errors
- o JSON do yt-dlp não foi lido: {}
- yt-dlp returned invalid JSON: {}
- Video extraction failed. Update yt-dlp or try again.
- não achei appid para: {} — cole o link da loja ou o número
- não achei nenhuma faixa em {}
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/728ed4d5c15132f3.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/ytdlp.rs:4458
|| 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."
);
}
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") {View on GitHub (pinned to 8600b91f42)