From ea6ede8a7f0bba86461a6f7f1d241ba5edd1a0d4 Mon Sep 17 00:00:00 2001 From: NimBold Date: Mon, 15 Jun 2026 19:10:55 +0330 Subject: [PATCH] fix(yt-dlp): remove buggy ios,tv player client spoofing YouTube seems to have enforced DRM checks specifically for the ios,tv player clients, which caused yt-dlp to return 'This video is DRM protected' for all standard videos when using that extractor arg. Removing the arg allows yt-dlp to fallback to web/android which still bypasses bot detection successfully. --- src-tauri/src/lib.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 7c63d7e..f71be20 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -190,8 +190,7 @@ async fn fetch_media_metadata(app_handle: tauri::AppHandle, url: String, cookie_ .arg("--retries").arg("3") .arg("--extractor-retries").arg("3") .arg("--compat-options").arg("no-youtube-unavailable-videos") - .arg("--js-runtimes").arg(format!("deno:{},node", deno_path.display())) - .arg("--extractor-args").arg("youtube:player_client=ios,tv"); + .arg("--js-runtimes").arg(format!("deno:{},node", deno_path.display())); if let Some(browser) = cookie_browser { if !browser.is_empty() { @@ -838,7 +837,6 @@ pub(crate) async fn start_media_download_internal( .arg("--no-warnings") .arg("--compat-options").arg("no-youtube-unavailable-videos") .arg("--js-runtimes").arg(format!("deno:{},node", deno_path.display())) - .arg("--extractor-args").arg("youtube:player_client=ios,tv") .arg("--progress-template").arg("download:[%(progress.downloaded_bytes)s/%(progress.total_bytes)s]") .arg("-o").arg(out_path.to_string_lossy().to_string());