ytDownloader 下载工具:三平台最简安装、源码构建与下载链路拆解
发布时间:2026/10/24 4:00:42 锦皓数字建站

ytDownloader 下载工具三平台最简安装、源码构建与下载链路拆解【免费下载链接】ytDownloaderDesktop app to download audio/video from hundreds of sites项目地址: https://gitcode.com/GitHub_Trending/yt/ytDownloaderytDownloader 把复制链接 → 得到视频/音频文件这件事从命令行搬到了桌面窗口里覆盖 YouTube、TikTok、Instagram 等数百个站点。它的下载引擎是 yt-dlp界面用 Electron 实现当前版本 4.0.2见 package.json。读完本文你能在三台不同系统的机器上各装好一份并能自己从源码打出安装包。ytDownloader 三平台最低安装成本Windows一条命令走 winget 渠道商店版和 exe/msi 离线包同样可用exe 允许自选安装目录对应 package.json 中build.nsis.allowToChangeInstallationDirectory: true若 Windows Defender 弹出 Windows Protected Your PC点 More info 再 Run Anyway 即可winget install aandrew-me.ytDownloaderChocolatey 用户对应choco install ytdownloaderScoop 用户可直接用仓库根目录的 ytdownloader.json 作为清单——它声明了下载 URL、checkver版本检查与 sha256 校验规则。macOS应用未签名DMG 构建dmg.sign: false首启会被 Gatekeeper 拦截先移隔离属性再补装 yt-dlpmacOS 上没有内置的 yt-dlp 自动下载设置页会直接隐藏 yt-dlp 下载源 选项见 src/preferences.jssudo xattr -r -d com.apple.quarantine /Applications/YTDownloader.app brew install yt-dlpLinuxREADME 推荐 FlatpakARM 处理器建议从 Flathub 获取flatpak install flathub io.github.aandrew_me.ytdnSnap 渠道对应sudo snap install ytdownloaderAppImage 下载后赋执行权限即可跑自带自动更新。仓库 flatpak/ 目录提供了.desktop与 metainfo 清单。装好后打开应用、粘贴一个链接点解析能列出格式列表就说明链路通了。你点一次下载底层发生了什么界面只是壳真正的活在 preload.js 的桥接层和 yt-dlp 子进程里发生。取流时网络层被换掉了yt-dlp-wrap-plus 默认的元数据请求遇到 DNS 解析失败会直接抛getaddrinfo ENOTFOUND。preload.js 在启动时重写了YTDlpWrap.createGetMessage换成自实现的 HTTP 客户端带浏览器风格 User-Agent3xx 状态码递归跟随重定向超过 10 次直接拒绝避免未处理的 Promise 泄漏。这就是为什么某些被重定向绕过的站点在别的壳里取不到流、在这里可以。取消下载时进程树怎么被清掉killProcessSafely处理这件事Windows 下执行taskkill /pid pid /T /F整棵进程树强杀/T是关键yt-dlp 会再 spawn 出下载子进程其他平台发SIGKILL。杀进程失败时还会兜底再 kill 一次。所以点取消不会留下占着网络的僵尸进程。压缩页如何挑出硬件编码器进入压缩页时 src/compressor.js 调systeminformation的si.graphics()读 GPU 厂商字符串按规则点亮选项NVIDIA → NVENCAMD → Windows 下 AMF、Linux 下 VAAPIIntel → Windows 下 QSV、Linux 下 VAAPImacOS → VideoToolbox。Linux 的 VAAPI 默认设备写死为/dev/dri/renderD128源码常量vaapi_device如果你的渲染节点是 renderD129需要自行确认。历史上限与 cookie 落盘下载完成后记录写入 src/history.js 的DownloadHistory持久化到用户数据目录的download_history.json只保留最近 800 条导出 CSV 时字段会做防公式注入消毒。手动粘贴的 Netscape 格式 cookie 则以0o600权限写到cookies.txt路径由 main.js 的get-cookies-path通道给出文件权限对得起里面存的东西。ytDownloader 源码构建ffmpeg 与 Node 22 两个坑构建清单命令均与 package.json scripts 一致装 Node.js含 npmclone 后执行npm i——postinstall会自动跑 patch-snap.js 为 Snap 构建打补丁。npm start用 Electron 直接跑起来验证环境。ffmpeg 必须放进项目根目录package.json 的build.files含./ffmpeg/**/*构建时会一并打包。非 ARM 构建直接跑仓库脚本Linux 用 linux.sh、macOS 用 mac.sh、Windows 用windows.shARM 构建需手动从 FFmpeg-Builds 发布页取对应构建。注意 linux.sh 还会额外捆绑一份 Node v22.22.3 到node/目录yt-dlp 的 EJS JavaScript challenge 求解器要求 Node ≥ 22版本不够时 YouTube 的nsig反混淆会静默降级表现为下载 YouTube 偶尔失败且没有明确报错。构建npm run linuxAppImage/snap/rpm/zip/deb、npm run windowsNSIS/MSI/zip、npm run macdmg/zip产物落在release/文件夹。只要一种格式就npx electron-builder -l appimage。git clone https://gitcode.com/GitHub_Trending/yt/ytDownloader cd ytDownloader npm i npm start npm run linux改代码三个入口与两条贡献规则加下载行为配置改 src/preferences.js所有偏好的 localStorage 键名与校验逻辑都在这改 yt-dlp 调用方式、进程生命周期改 preload.js加 IPC 通道、热键、托盘、自动更新逻辑改 main.js。端到端测试用npm test跑 Playwright 套件tests/ 下覆盖主页下载、播放列表、压缩、偏好集成等场景测试环境下主进程会给窗口加无界面启动开关见 main.js 的isTestEnv分支。翻译走 CrowdinREADME 明确写了不要直接提交 json 文件的 PR——translations/ 目录现有 23 个语言文件就是那条流水线的产物。下一步建议先打开 preload.js 第 101 行起的createYTDlpWrapInstance那是渲染进程触达 yt-dlp 的唯一通道看懂它再往下走会省一半时间。【免费下载链接】ytDownloaderDesktop app to download audio/video from hundreds of sites项目地址: https://gitcode.com/GitHub_Trending/yt/ytDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。