一个基于 Go 和 yt-dlp 的现代化视频下载工具,支持多种视频平台,提供美观的 Web 界面。
- 🎯 多平台支持: YouTube, Pinterest, Bilibili, Twitter, Instagram, TikTok, SpankBang 等
- 🌐 现代化 Web UI: 响应式设计,支持实时进度显示
- ⚡ 高性能: 基于 yt-dlp,支持多线程下载
- 🔧 易于配置: YAML 配置文件,支持环境变量
- 📊 实时监控: 下载进度、速度、剩余时间显示
- 🎨 美观界面: 使用 Tailwind CSS,现代化设计
- 🔒 安全可靠: 支持 CORS、速率限制等安全特性
- 🛡️ 稳定架构: 统一使用 yt-dlp,避免自定义解析的bug
详细的快速开始指南请查看 docs/QUICK_START.md
- Go 1.19+
- Python3(推荐使用系统自带的 python3)
- pip 安装 yt-dlp:
python3 -m pip install -U yt-dlp
编辑 configs/config.yaml,配置 yt-dlp 路径:
server:
port: 8080
host: "0.0.0.0"
mode: "debug"
log:
level: "info"
file: "logs/video-hunter.log"
max_size: 100
max_age: 30
max_backups: 10
downloader:
output_dir: "./downloads"
max_retries: 3
timeout: 300
max_concurrent: 3
ytdlp:
# yt-dlp 命令路径 - 支持多种格式
path: "python3 -m yt_dlp" # 推荐:使用 pip 安装的 yt-dlp
# path: "yt-dlp" # 可选:如果 yt-dlp 已安装到系统 PATH
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
format: "best"
extract_audio: false
audio_format: "mp3"
audio_quality: "192K"
database:
driver: "sqlite"
dsn: "./data/video-hunter.db"
security:
cors_origins: ["*"]
rate_limit: 100
rate_limit_window: "1m"# 克隆项目
git clone <repository-url>
cd video-hunter
# 安装依赖
go mod download
# 编译
go build -o video-hunter main.go
# 运行
./video-hunter# 使用便捷启动脚本
./start.sh# 构建镜像
docker build -t video-hunter .
# 运行容器
docker run -p 8080:8080 -v $(pwd)/downloads:/app/downloads video-hunter- 启动服务后访问
http://localhost:8080 - 在输入框中粘贴视频 URL
- 选择下载格式和质量
- 点击"开始下载"
- 在下载列表中查看进度
curl "http://localhost:8080/api/video-info?url=<视频URL>"curl -X POST http://localhost:8080/api/download \
-H "Content-Type: application/json" \
-d '{"url":"<视频URL>","format":"best"}'curl http://localhost:8080/api/downloadscurl -X POST http://localhost:8080/api/downloads/<任务ID>/cancelcurl -X POST http://localhost:8080/api/downloads/clear详细更新历史请查看 docs/CHANGELOG.md
- 🔧 架构优化: 移除有问题的QinAV专用下载器,统一使用yt-dlp
- 🛡️ 稳定性提升: 避免自定义解析代码的bug,提高系统稳定性
- 📦 代码简化: 减少代码复杂度,更易维护
- 🎯 功能增强: yt-dlp支持更多网站,功能更强大
- 🚀 性能优化: 统一下载器架构,减少资源占用
- ✨ 初始版本发布
- 🌐 现代化 Web 界面
- 🎯 支持多平台视频下载
- ⚡ 基于 yt-dlp 的高性能下载
- 📊 实时进度监控
- 🔧 灵活的配置系统
Service
└── ytdlp下载器 (统一处理所有网站) ✅ 稳定可靠
- 代码更简洁 - 移除了复杂的网站特定逻辑
- 更稳定 - 统一使用yt-dlp,避免自定义解析的bug
- 更易维护 - 减少了代码复杂度
- 功能更强大 - yt-dlp支持更多网站,包括YouTube、Pinterest、Bilibili等
欢迎提交 Issue 和 Pull Request!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 本工具仅供学习和个人使用
- 请遵守相关网站的使用条款和版权法律
- 开发者不对使用本工具造成的任何问题负责
- 请尊重内容创作者的权益
如果遇到问题,请:
- 查看 Issues 是否有类似问题
- 检查日志文件
logs/video-hunter.log - 确保 yt-dlp 已正确安装并可用
- 提交新的 Issue 并附上详细的错误信息
- 查看 docs/TROUBLESHOOTING.md 获取常见问题解决方案
享受下载视频的乐趣! 🎬✨
- 自动加反爬虫请求头,无需 Cookie、无需 impersonate
- 只需粘贴 SpankBang 视频链接即可下载
- 详细说明见 docs/SPANKBANG_SUPPORT.md
- 支持将视频直接下载到用户本地
- 详细说明见 docs/LOCAL_DOWNLOAD_FEATURE.md
- 自动处理特殊字符和非法文件名
- 详细说明见 docs/FILENAME_HANDLING.md
- 详细的配置选项和优化建议
- 详细说明见 docs/CONFIG_OPTIMIZATION.md
- 优化的项目结构和代码组织
- 详细说明见 docs/PROJECT_STRUCTURE_OPTIMIZATION.md
- 403 Forbidden
- 确认 python3 路径和 yt-dlp 安装一致
- 网络需能正常访问 SpankBang
- yt-dlp 需为 pip 安装最新版
- 下载速度慢/中断
- 检查网络和磁盘空间
- 可选择低清晰度格式
- 找不到视频信息
- 检查链接是否有效,或目标站点反爬虫升级
- impersonate 报错
- 本项目已无需 impersonate,自动加请求头即可
video-hunter/
├── cmd/ # 命令行工具
│ ├── cli/ # CLI 版本
│ └── web/ # Web 版本
├── configs/ # 配置文件
│ └── config.yaml # 主配置文件
├── data/ # 数据文件
├── docs/ # 文档
├── downloads/ # 下载目录
├── internal/ # 内部包
│ ├── config/ # 配置管理
│ ├── downloader/ # 下载器
│ │ ├── types.go # 类型定义
│ │ └── ytdlp_downloader.go # yt-dlp下载器
│ ├── handler/ # HTTP处理器
│ └── service/ # 业务逻辑
├── logs/ # 日志文件
├── scripts/ # 脚本文件
├── temp/ # 临时文件
├── web/ # Web前端
│ ├── static/ # 静态资源
│ └── templates/ # HTML模板
├── Dockerfile # Docker配置
├── Makefile # 构建脚本
├── main.go # 主程序
├── go.mod # Go模块
├── go.sum # 依赖校验
├── README.md # 项目说明
├── QUICK_START.md # 快速开始
├── CHANGELOG.md # 更新日志
├── SPANKBANG_SUPPORT.md # SpankBang支持说明
└── start.sh # 启动脚本
- 快速开始指南 - 立即上手使用
- 更新日志 - 详细的版本更新历史
- SpankBang支持说明 - SpankBang网站下载指南
- 🎯 多平台支持: 支持YouTube、Pinterest、Bilibili、Twitter、Instagram、TikTok、SpankBang等主流视频平台
- 🌐 现代化界面: 响应式Web界面,支持实时进度显示
- ⚡ 高性能: 基于yt-dlp的高性能下载引擎
- 🛡️ 稳定可靠: 统一使用yt-dlp,避免自定义解析的bug
- 🔧 易于部署: 支持Docker一键部署
- 📊 实时监控: 下载进度、速度、剩余时间实时显示
# 克隆项目
git clone <repository-url>
cd video-hunter
# 使用启动脚本(推荐)
./start.sh
# 或手动启动
go build -o video-hunter main.go
./video-hunter然后访问 http://localhost:8080 开始使用!
享受下载视频的乐趣! 🎬✨
抖音视频下载功能已经优化,不再需要访问Chrome Safe Storage。主要改进包括:
- 移除了
--cookies-from-browser chrome参数,避免访问浏览器的安全存储 - 使用移动端 User-Agent 提高下载成功率
- 添加
--force-generic-extractor参数尝试通用下载方式 - 使用 aria2c 作为下载器提高下载速度和稳定性
- 优化错误提示,提供更友好的用户体验
- 自动修正抖音链接格式,提高下载成功率
- 当无法获取视频信息时,禁用下载按钮并提供明确的解决方案
注意:由于抖音的反爬虫机制,部分视频可能需要特殊处理:
- 优先使用移动端分享的短链接(以 v.douyin.com 开头)
- 确保链接格式正确,例如:https://v.douyin.com/xxxxxx/
- 尝试使用抖音官方分享功能获取新的链接
- 确保已安装 yt-dlp 和 ffmpeg
- 启动服务:
./video-hunter - 访问 http://localhost:8080
- 输入视频链接并下载
- YouTube
- Bilibili
- 抖音
- 其他 yt-dlp 支持的平台
详细配置请参考 configs/config.yaml 文件。