tonhowtf/omniget · critical
yt-dlp not found in PATH or app data dir
Error message
yt-dlp not found in PATH or app data dir
What it means
Lookup failure in the CLI reporter: find_yt_dlp() wraps find_tool("yt-dlp"), which checks the system PATH and the app data directory for the yt-dlp binary; when neither location yields an executable it converts the None into an error. It fires when yt-dlp is simply not installed, is not on PATH, or was not bundled into the app data dir, so any download that depends on it cannot proceed.
Solutions
- Install yt-dlp: pip install yt-dlp (or brew install yt-dlp) and confirm with 'yt-dlp --version'.
- Alternatively download the yt-dlp binary and place it in the app data directory the CLI checks.
- Verify PATH includes the directory containing yt-dlp (echo $PATH / where yt-dlp).
Example fix
// before $ omniget download <url> # yt-dlp not installed // after $ pip install yt-dlp $ omniget download <url>
Defensive patterns
Strategy: validation
Validate before calling
const { execSync } = require('child_process');
try { execSync('yt-dlp --version', { stdio: 'ignore' }); }
catch { throw new Error('Install yt-dlp first: pip install yt-dlp'); } Try / catch
try {
await startDownload(url);
} catch (e) {
if (String(e).includes('yt-dlp not found')) {
// surface an install instruction to the user
} else throw e;
} Prevention
- Check for yt-dlp at app startup and prompt installation early
- Pin yt-dlp in your environment setup script (pip install yt-dlp)
- Keep the binary on PATH or in the app data dir the tool checks
When it happens
Trigger: Calling any download/report flow that invokes find_yt_dlp when yt-dlp is neither installed in PATH nor placed in the app data directory.
Common situations: Fresh installs where yt-dlp was never installed; venvs where yt-dlp isn't on PATH; Windows installs missing .exe extension resolution; yt-dlp renamed (e.g. youtube-dl).
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- yt-dlp not found — install it in Settings
- yt-dlp not found
- yt-dlp not found
- yt-dlp not found — install it in Settings
- yt-dlp not found
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/9da4f657398242c0.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-cli/src/reporter.rs:84
"type": "complete",
"success": success,
"message": message,
});
println!("{}", json);
} else {
if success {
self.pb.finish_with_message(format!("✓ {}", message));
} else {
self.pb.finish_with_message(format!("✗ {}", message));
}
}
}
}
pub async fn find_yt_dlp() -> Result<PathBuf> {
find_tool("yt-dlp")
.await
.ok_or_else(|| anyhow::anyhow!("yt-dlp not found in PATH or app data dir"))
}
pub fn default_output_dir() -> PathBuf {
directories::UserDirs::new()
.and_then(|d| d.download_dir().map(PathBuf::from))
.unwrap_or_else(|| std::env::current_dir().unwrap_or_default())
}
pub fn default_cookie_path() -> Option<PathBuf> {
let app_dir = app_data_dir()?;
let cookie_file = app_dir.join("cookies").join("cookies.txt");
if cookie_file.exists() {
Some(cookie_file)
} else {
None
}
}
View on GitHub (pinned to 8600b91f42)