Skip to content

Repository files navigation

📺 YouTube/B站视频下载器

基于 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. 安装依赖

# 方法 1: 使用批处理脚本(Windows)
双击运行 "安装依赖.bat"

# 方法 2: 手动安装
pip install -r requirements.txt
pip install "yt-dlp[default]"

2. 配置 YouTube 支持(可选)

如需下载 YouTube 视频,需要安装 Deno(JavaScript 运行时):

# PowerShell 管理员模式
irm https://deno.land/install.ps1 | iex

3. 导入 Cookies(YouTube 登录认证)

程序内置 Cookies 管理功能,可在主界面中直接操作:

  1. 点击「📥 导入」按钮
  2. 粘贴浏览器导出的 Cookies 内容
  3. 点击确定完成导入

详细操作方法请见下方"Cookies 管理"章节。

4. 启动程序

# 方法 1: 使用批处理脚本(Windows)
双击运行 "启动程序.bat"

# 方法 2: 命令行启动
python main.py

🎨 界面预览

主界面布局

┌─────────────────────────────────────────────────────────┐
│  📥 输入视频 URL                                          │
│  [粘贴链接...                    ] [🔍获取] [⬇️下载] [📋批量] │
└─────────────────────────────────────────────────────────┘

┌──────────────────────┬──────────────────────────────────┐
│  📺 视频信息          │  ⚙️ 下载选项                      │
│  ┌────────────────┐  │  下载类型: [视频 ▼]              │
│  │                │  │  视频质量: [最高 ▼]              │
│  │   缩略图        │  │  音频格式: [MP3 ▼]              │
│  │                │  │  字幕下载: [无 ▼]                │
│  └────────────────┘  │  ────────────────────────────── │
│  标题: xxx           │  🌐 网络代理设置                 │
│  时长: xx:xx         │  ☐ 不使用代理                    │
│  上传者: xxx         │  ☑ 使用系统代理(自动检测)      │
│  观看: xxx           │  ☐ 使用自定义代理                │
│                      │    地址: [__________________]    │
│                      │  ────────────────────────────── │
│                      │  🍪 Cookies 设置(YouTube 认证) │
│                      │  ✓ 已加载 19 个 Cookies          │
│                      │  [📄查看] [📥导入] [🗑️清除]      │
└──────────────────────┴──────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│  📥 下载任务列表                                          │
│  ┌─────────────────────────────────────────────────────┐│
│  │ 视频1  ████████████████░░░░  80%  [取消]            ││
│  │ 视频2  ✓ 完成                                       ││
│  └─────────────────────────────────────────────────────┘│
│  [清除已完成] [取消全部]             [打开下载文件夹]    │
└─────────────────────────────────────────────────────────┘

🔧 功能说明

代理设置(v2.0 全新设计)

三种模式:

  1. 不使用代理

    • 直连模式,不使用任何代理
    • 适用于国内网站(如B站)
  2. 使用系统代理 ⭐ 推荐

    • 自动检测系统代理设置
    • 支持 Windows 注册表和环境变量
    • 默认启用
  3. 使用自定义代理

    • 手动输入代理地址
    • 支持 SOCKS5 和 HTTP 代理
    • 内置连接测试功能

代理测试:

  • 输入代理地址(如 socks5://127.0.0.1:7890
  • 点击"测试连接"按钮
  • 等待测试结果(绿色成功/红色失败)
  • 成功后自动应用

Cookies 管理

功能:

  • 查看 - 显示已保存的 Cookies 详细信息
  • 导入 - 从浏览器导出的内容导入
  • 清除 - 删除已保存的 Cookies 文件

导入方法:

  1. 安装 Chrome 扩展:"Get cookies.txt LOCALLY"
  2. 访问 youtube.com 并登录
  3. 点击扩展图标,选择"Export"
  4. 将内容粘贴到导入对话框
  5. 点击确定,自动保存

下载功能

支持格式:

  • 视频: MP4, MKV, WebM
  • 音频: MP3, M4A, WAV, FLAC

质量选项:

  • 最高质量(原始)
  • 1080p, 720p, 480p, 360p
  • 最低质量

字幕选项:

  • 不下载字幕
  • 仅自动生成字幕
  • 仅手动字幕
  • 全部字幕

📊 平台支持状态

平台 状态 说明
B站 ✅ 完全支持 无需额外配置
YouTube ⚠️ 需配置 需要 Deno + Cookies
Twitter/X ✅ 完全支持 需要 Cookies(私密视频)
Instagram ✅ 完全支持 需要 Cookies
TikTok ✅ 完全支持 无需额外配置
其他 ✅ 1000+网站 见 yt-dlp 支持列表

🐛 故障排除

YouTube 视频无法获取

症状:

WARNING: Signature solving failed
ERROR: Requested format is not available

解决方案:

  1. 安装 Deno(见"快速开始")

  2. 确保 yt-dlp 为最新版本:

    pip install --upgrade "yt-dlp[default]"
  3. 检查 Cookies 是否过期

  4. 检查代理设置是否正确

B站视频无法下载

可能原因:

  1. 网络连接问题
  2. 视频链接无效
  3. 视频已被删除

解决方案:

  1. 检查网络连接
  2. 尝试切换代理模式
  3. 使用浏览器确认视频可访问

代理测试失败

可能原因:

  1. 代理地址错误
  2. 代理服务未启动
  3. 防火墙阻止

解决方案:

  1. 确认代理地址格式正确
  2. 检查代理软件是否运行
  3. 尝试关闭防火墙测试

📝 更新日志

v2.0 (2025-02-12) - UI优化版

✨ 新功能:

  • 全新的代理管理界面(单选模式)
  • Cookies 管理 UI 集成
  • 状态可视化(多色背景)
  • 快速启动脚本

🎨 UI 改进:

  • 修复布局压缩问题
  • 优化自适应布局
  • 改进代理切换逻辑
  • 增强状态反馈

🔧 技术优化:

  • 重构代理管理代码
  • 简化状态管理逻辑
  • 改进错误处理
  • 代码注释完善

📦 依赖更新:

  • yt-dlp[default] 完整包
  • yt-dlp-ejs 0.4.0
  • requirements.txt 更新

🙏 致谢

  • yt-dlp - 强大的视频下载核心
  • PyQt6 - 现代化的 UI 框架
  • 开源社区 - 持续的贡献和支持

📄 许可证

本项目仅供学习和个人使用,请遵守相关网站的服务条款。


📞 技术支持

遇到问题?请查看:

  1. 本文档的"故障排除"章节
  2. GitHub Issues - 提交问题和反馈

开发者: chujwu
版本: v2.0
更新日期: 2025-02-12


如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!

About

基于 yt-dlp 的现代化视频下载工具,支持 YouTube、B站等多平台

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages