基于 yt-dlp 的现代化视频下载工具,支持 YouTube、B站等多平台
✅ 多平台支持 - YouTube、B站、Twitter、Instagram 等 1000+ 网站
✅ 现代化 UI - PyQt6 构建,界面美观易用
✅ Cookies 认证 - 支持 YouTube 登录认证下载
✅ 代理管理 - 智能代理切换,支持系统/自定义代理
✅ 批量下载 - 支持批量添加下载任务
✅ 格式转换 - 支持多种视频/音频格式
✅ 字幕下载 - 支持自动/手动字幕下载
基于yt-dlp的下载器/
│
├── 📂 config/ # 配置模块
│ ├── settings.py # 全局设置
│ └── settings.pyc
│
├── 📂 core/ # 核心功能模块
│ ├── downloader.py # 下载器核心(支持 Cookies)
│ ├── format_utils.py # 格式转换工具
│ └── *.pyc
│
├── 📂 ui/ # 用户界面
│ ├── main_window.py # 主窗口(UI优化版)
│ ├── widgets/ # UI组件
│ │ └── download_item.py # 下载项组件
│ └── *.pyc
│
├── 📂 utils/ # 工具模块
│ ├── cookies_manager.py # ✨ Cookies 管理器
│ ├── helpers.py # 辅助函数
│ └── *.pyc
│
├── 📄 main.py # 主程序入口
├── 📄 requirements.txt # 依赖配置
│
├── 🔧 check_dependencies.bat # 依赖检查
│
├── 📖 项目说明.md # 项目说明(本文件)
│
├── 🚀 启动程序.bat # 快速启动
└── 🔨 安装依赖.bat # 依赖安装
# 方法 1: 使用批处理脚本(Windows)
双击运行 "安装依赖.bat"
# 方法 2: 手动安装
pip install -r requirements.txt
pip install "yt-dlp[default]"如需下载 YouTube 视频,需要安装 Deno(JavaScript 运行时):
# PowerShell 管理员模式
irm https://deno.land/install.ps1 | iex程序内置 Cookies 管理功能,可在主界面中直接操作:
- 点击「📥 导入」按钮
- 粘贴浏览器导出的 Cookies 内容
- 点击确定完成导入
详细操作方法请见下方"Cookies 管理"章节。
# 方法 1: 使用批处理脚本(Windows)
双击运行 "启动程序.bat"
# 方法 2: 命令行启动
python main.py┌─────────────────────────────────────────────────────────┐
│ 📥 输入视频 URL │
│ [粘贴链接... ] [🔍获取] [⬇️下载] [📋批量] │
└─────────────────────────────────────────────────────────┘
┌──────────────────────┬──────────────────────────────────┐
│ 📺 视频信息 │ ⚙️ 下载选项 │
│ ┌────────────────┐ │ 下载类型: [视频 ▼] │
│ │ │ │ 视频质量: [最高 ▼] │
│ │ 缩略图 │ │ 音频格式: [MP3 ▼] │
│ │ │ │ 字幕下载: [无 ▼] │
│ └────────────────┘ │ ────────────────────────────── │
│ 标题: xxx │ 🌐 网络代理设置 │
│ 时长: xx:xx │ ☐ 不使用代理 │
│ 上传者: xxx │ ☑ 使用系统代理(自动检测) │
│ 观看: xxx │ ☐ 使用自定义代理 │
│ │ 地址: [__________________] │
│ │ ────────────────────────────── │
│ │ 🍪 Cookies 设置(YouTube 认证) │
│ │ ✓ 已加载 19 个 Cookies │
│ │ [📄查看] [📥导入] [🗑️清除] │
└──────────────────────┴──────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 📥 下载任务列表 │
│ ┌─────────────────────────────────────────────────────┐│
│ │ 视频1 ████████████████░░░░ 80% [取消] ││
│ │ 视频2 ✓ 完成 ││
│ └─────────────────────────────────────────────────────┘│
│ [清除已完成] [取消全部] [打开下载文件夹] │
└─────────────────────────────────────────────────────────┘
-
不使用代理
- 直连模式,不使用任何代理
- 适用于国内网站(如B站)
-
使用系统代理 ⭐ 推荐
- 自动检测系统代理设置
- 支持 Windows 注册表和环境变量
- 默认启用
-
使用自定义代理
- 手动输入代理地址
- 支持 SOCKS5 和 HTTP 代理
- 内置连接测试功能
- 输入代理地址(如
socks5://127.0.0.1:7890) - 点击"测试连接"按钮
- 等待测试结果(绿色成功/红色失败)
- 成功后自动应用
- 查看 - 显示已保存的 Cookies 详细信息
- 导入 - 从浏览器导出的内容导入
- 清除 - 删除已保存的 Cookies 文件
- 安装 Chrome 扩展:"Get cookies.txt LOCALLY"
- 访问 youtube.com 并登录
- 点击扩展图标,选择"Export"
- 将内容粘贴到导入对话框
- 点击确定,自动保存
- 视频: MP4, MKV, WebM
- 音频: MP3, M4A, WAV, FLAC
- 最高质量(原始)
- 1080p, 720p, 480p, 360p
- 最低质量
- 不下载字幕
- 仅自动生成字幕
- 仅手动字幕
- 全部字幕
| 平台 | 状态 | 说明 |
|---|---|---|
| B站 | ✅ 完全支持 | 无需额外配置 |
| YouTube | 需要 Deno + Cookies | |
| Twitter/X | ✅ 完全支持 | 需要 Cookies(私密视频) |
| ✅ 完全支持 | 需要 Cookies | |
| TikTok | ✅ 完全支持 | 无需额外配置 |
| 其他 | ✅ 1000+网站 | 见 yt-dlp 支持列表 |
症状:
WARNING: Signature solving failed
ERROR: Requested format is not available
解决方案:
-
安装 Deno(见"快速开始")
-
确保 yt-dlp 为最新版本:
pip install --upgrade "yt-dlp[default]" -
检查 Cookies 是否过期
-
检查代理设置是否正确
可能原因:
- 网络连接问题
- 视频链接无效
- 视频已被删除
解决方案:
- 检查网络连接
- 尝试切换代理模式
- 使用浏览器确认视频可访问
可能原因:
- 代理地址错误
- 代理服务未启动
- 防火墙阻止
解决方案:
- 确认代理地址格式正确
- 检查代理软件是否运行
- 尝试关闭防火墙测试
✨ 新功能:
- 全新的代理管理界面(单选模式)
- Cookies 管理 UI 集成
- 状态可视化(多色背景)
- 快速启动脚本
🎨 UI 改进:
- 修复布局压缩问题
- 优化自适应布局
- 改进代理切换逻辑
- 增强状态反馈
🔧 技术优化:
- 重构代理管理代码
- 简化状态管理逻辑
- 改进错误处理
- 代码注释完善
📦 依赖更新:
- yt-dlp[default] 完整包
- yt-dlp-ejs 0.4.0
- requirements.txt 更新
- yt-dlp - 强大的视频下载核心
- PyQt6 - 现代化的 UI 框架
- 开源社区 - 持续的贡献和支持
本项目仅供学习和个人使用,请遵守相关网站的服务条款。
遇到问题?请查看:
- 本文档的"故障排除"章节
- GitHub Issues - 提交问题和反馈
开发者: chujwu
版本: v2.0
更新日期: 2025-02-12
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!