tonhowtf/omniget · warning

Requested format is not available. The download will retry…

Error message

Requested format is not available. The download will retry with a compatible format.

What it means

translate_ytdlp_error at ytdlp.rs:4463 maps stderr containing both 'requested format' and 'not available' to this message. yt-dlp could not satisfy the -f format selector because none of the video's available streams match it. The library throws it with a note that the download will retry with a compatible format.

Solutions

  1. Let the pipeline retry with a fallback/compatible format selector.
  2. Loosen the format selector (e.g. use 'best' or 'bestvideo*+bestaudio/best' with height caps like '[height<=720]').
  3. Update yt-dlp so format extraction reflects the site's current stream list.
  4. Check the video's actual available resolutions and pick an existing one.

Example fix

// before: rigid selector fails on a 720p-only video
let args = ["-f", "bestvideo[height=1080]+bestaudio", url];

// after: capped, with a generic fallback
let args = ["-f", "bestvideo[height<=1080]+bestaudio/best", url];
Defensive patterns

Strategy: fallback

Validate before calling

// Probe available formats and pick one that exists before downloading
const formats = await listFormats(url);
const pick = formats.find(f => f.height <= 1080) ?? formats[0];
const selector = pick ? `${pick.format_id}` : 'best';

Try / catch

try {
  await download(url, '-f bestvideo[height<=1080]+bestaudio/best');
} catch (e) {
  if (isFormatUnavailable(e)) await download(url, '-f best'); // fallback selector
  else throw e;
}

Prevention

When it happens

Trigger: yt-dlp stderr reports 'ERROR: Requested format is not available' — the format selector (e.g. 'bestvideo+bestaudio', a specific format id or height like 1080p) matched no stream offered for this video.

Common situations: Requesting 1080p from a video only uploaded at 720p; format ids shifted after a site change; client-based format filters (e.g. android/ios clients) returning different format lists; stale metadata after a partially failed extraction.

Understand the failure class

Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/04568682cfabda76. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/ytdlp.rs:4463

    }
    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") {
        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.");
    }

View on GitHub (pinned to 8600b91f42)