From 8c9dc88e8ba8a3f9b1e42618c8ea6430c0908b4e Mon Sep 17 00:00:00 2001 From: claude-bot Date: Mon, 25 May 2026 16:29:27 +0900 Subject: [PATCH] server-youtube: strip Zone.Identifier ADS on Windows after download NTFS marks files downloaded over HTTP with a Zone.Identifier alternate data stream, which SmartScreen/Attachment Manager can use to block execution of yt-dlp.exe. Remove the ADS best-effort after each download to reduce one likely cause of "execution verification failed" in the user-reported failure. Co-Authored-By: Claude Opus 4.7 --- src/server/youtube.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/youtube.ts b/src/server/youtube.ts index 7eda016..b7b49fa 100644 --- a/src/server/youtube.ts +++ b/src/server/youtube.ts @@ -91,6 +91,10 @@ async function prepareYtDlp(target: string): Promise { await downloadToFile(url, target) if (process.platform !== 'win32') { await fs.chmod(target, 0o755) + } else { + // Windows: 인터넷에서 받은 파일에는 NTFS ADS 'Zone.Identifier' 가 붙어 + // SmartScreen/Attachment Manager 가 실행을 막을 수 있다. 베스트에포트로 제거. + try { await fs.unlink(`${target}:Zone.Identifier`) } catch { /* noop */ } } const probe = await probeVersion(target) if (probe.ok) return target