{"record":{"id":"a467ec618613f0dd","repo":"tonhowtf/omniget","slug":"unsupported-url-check-that-the-link-is-correct","errorCode":null,"errorMessage":"Unsupported URL. Check that the link is correct.","messagePattern":"Unsupported URL\\. Check that the link is correct\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-tauri/omniget-core/src/core/ytdlp.rs","lineNumber":4486,"sourceCode":"        return anyhow!(\"Video unavailable or removed.\");\n    }\n    if lower.contains(\"private video\") {\n        return anyhow!(\"This video is private.\");\n    }\n    if lower.contains(\"copyright\") {\n        return anyhow!(\"Video blocked due to copyright.\");\n    }\n    if lower.contains(\"geo\") && lower.contains(\"block\") {\n        return anyhow!(\"Video restricted in your region.\");\n    }\n    if lower.contains(\"timed out\") || lower.contains(\"timeout\") {\n        return anyhow!(\"Connection timed out. Check your internet and try again.\");\n    }\n    if lower.contains(\"ffmpeg\") && (lower.contains(\"not found\") || lower.contains(\"no such file\")) {\n        return anyhow!(\"FFmpeg not found. Install FFmpeg to download this format.\");\n    }\n    if lower.contains(\"unsupported url\") || lower.contains(\"no suitable infojson\") {\n        return anyhow!(\"Unsupported URL. Check that the link is correct.\");\n    }\n    if lower.contains(\"unable to download\") && lower.contains(\"webpage\") {\n        return anyhow!(\"Failed to access the page. Check the link and your connection.\");\n    }\n    if lower.contains(\"is not a valid url\") || lower.contains(\"no video formats\") {\n        return anyhow!(\"No video formats found for this link.\");\n    }\n\n    let last_error_line = stderr\n        .lines()\n        .rev()\n        .find(|l| {\n            let t = l.trim().to_lowercase();\n            t.starts_with(\"error:\") || t.starts_with(\"error \")\n        })\n        .unwrap_or(\"\")\n        .trim();\n","sourceCodeStart":4468,"sourceCodeEnd":4504,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/omniget-core/src/core/ytdlp.rs#L4468-L4504","documentation":"Raised when yt-dlp reports 'unsupported url' or 'no suitable infojson': the extractor cannot handle the given link or cannot obtain a valid info JSON for it. The wrapper maps this to a friendly message telling the user to verify the link.","triggerScenarios":"Calling download/info extraction with a URL yt-dlp has no extractor for, a URL to a page with no media, or a site whose extractor broke after a site-side layout/API change.","commonSituations":"Typos or truncated links, links to login-walled pages masquerading as public, expired share links, or outdated yt-dlp that lacks a new site extractor.","solutions":["Verify the URL points directly to a supported media page","Update yt-dlp (pip install -U yt-dlp or via app Settings → Dependencies) since extractors change frequently","Test the same URL with `yt-dlp -J <url>` on the CLI to confirm","Use `yt-dlp --list-extractors | grep <site>` to check extractor support"],"exampleFix":"// before\nlet out = run_ytdlp(url);\n// after\nif lower.contains(\"unsupported url\") || lower.contains(\"no suitable infojson\") {\n    return anyhow!(\"Unsupported URL. Check that the link is correct.\");\n}","handlingStrategy":"validation","validationCode":"// sanity-check the URL before handing it to yt-dlp\nlet parsed = url::Url::parse(input)?;\nif !parsed.has_host() { return Err(anyhow!(\"Invalid or unsupported URL\")); }","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"Unsupported URL\") => {\n        eprintln!(\"Check the link; update yt-dlp if the site should be supported\");\n    }\n    other => other?,\n}","preventionTips":["Validate URL scheme/host before invoking yt-dlp","Keep yt-dlp updated; extractors break often","Support a known-hosts allowlist to fail fast","Test questionable URLs with `yt-dlp -J` first"],"tags":["url","yt-dlp","unsupported-url","validation"],"backgroundTag":"invalid-url","analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}