支持的下载平台:
视频平台
综合视频:YouTube(包括频道、播放列表、直播回放)、Vimeo、Dailymotion、Meta(Facebook、Instagram 的视频内容)、TikTok(支持视频和直播下载)、Twitter(X.com)、Reddit(内嵌视频)、Pinterest(视频内容)。
影视 / 流媒体:Netflix(需特定配置)、Amazon Prime Video(部分内容)、Hulu、Disney+、HBO Max、 Paramount+、BBC iPlayer、ITV Hub、Discovery+。
专业内容: TED(演讲视频)、Coursera、edX(课程视频)、可汗学院(Khan Academy)。
音乐 / 音频平台
音乐视频:YouTube Music、Vevo、MTV、VEVO。
音频平台:SoundCloud、Bandcamp、Spotify(需特定配置,主要下载公开分享内容)、Apple Music(部分可下载内容)。
直播 / 游戏平台
直播平台:Twitch(直播和回放)、YouTube Live、Facebook Live、Periscope(已关闭,但历史内容可能支持)。
游戏相关:Steam 社区视频、Epic Games 相关视频、Mixer(已关闭,历史内容)。
新闻 / 资讯平台
CNN、Fox News、NBC News、ABC News、BBC News、Al Jazeera(半岛电视台)、《纽约时报》官网视频、《华盛顿邮报》视频内容。
其他知名站点
社交 / UGC:Snapchat(公开视频)、LinkedIn(视频内容)、Imgur(视频)。
成人。
更详细的支持列表请查询:
https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md

# VideoDown-Go 🎥
一个基于 Go 语言开发的现代化视频下载和管理工具,支持多平台视频下载、智能缩略图生成和响应式 Web 界面。
## ✨ 功能特性
### 🚀 核心功能
- **多平台视频下载**:支持 YouTube、TikTok、Bilibili 等主流视频平台
- **智能缩略图生成**:自动生成视频缩略图,支持宽高比自适应显示
- **实时下载进度**:WebSocket 实时显示下载进度和状态
- **批量操作**:支持批量选择和删除视频文件
- **视频预览**:内置视频播放器,支持在线预览
### 🎨 界面特性
- **现代化 UI**:简洁美观的响应式界面设计
- **智能缩略图显示**:根据视频宽高比自动调整缩略图尺寸
- 竖屏视频:60×107px(完整显示竖屏内容)
- 方形视频:90×90px(正方形显示)
- 横屏视频:160×90px(16:9 比例显示)
- **图片预览**:点击缩略图可弹窗查看大图
- **拖拽排序**:支持视频列表拖拽排序
- **移动端适配**:完美支持手机和平板设备
### 🛠️ 技术特性
- **高性能**:Go 语言开发,内存占用低,运行速度快
- **跨平台**:支持 Windows、macOS、Linux
- **零依赖部署**:单文件部署,无需额外安装依赖
- **实时通信**:WebSocket 实现实时状态更新
## 📦 安装说明
### 环境要求
- Go 1.19 或更高版本
- FFmpeg(用于视频处理和缩略图生成)
- yt-dlp(用于视频下载)
### 快速开始
1. **克隆项目**
```bash
git clone https://github.com/oskey/VideoDown-Go.git
cd VideoDown-Go
```
2. **安装依赖**
```bash
go mod download
```
3. **准备工具**
- 将 `ffmpeg.exe`、`ffplay.exe`、`ffprobe.exe` 放入 `bin/` 目录
- 将 `yt-dlp.exe` 放入 `bin/` 目录
4. **运行程序**
```bash
go run main.go
```
5. **访问界面**
打开浏览器访问:http://127.0.0.1:8888
## 🎯 使用方法
### ⚠️ 重要注意事项
本项目基于 **yt-dlp** 和 **FFmpeg** 构建,使用前请确保:
1. **工具配置**:需要自行下载 `yt-dlp.exe` 并放入项目根目录的 `bin/` 文件夹中
2. **浏览器配置**:推荐使用 **Firefox** 浏览器登录相关视频网站
- yt-dlp 会自动通过 Firefox 获取 Cookie 信息
- 这样可以确保下载到最高品质的视频内容
3. **浏览器选择**:不推荐使用 Chrome,因为 Cookie 获取配置相对复杂
> 💡 **提示**:如果下载失败,请检查是否已在 Firefox 中登录对应的视频网站
### 下载视频
1. 在输入框中粘贴视频链接
2. 点击「下载视频」按钮
3. 实时查看下载进度
4. 下载完成后自动刷新视频列表
### 管理视频
- **播放视频**:点击播放图标在线预览
- **查看大图**:点击缩略图弹窗查看
- **重命名**:右键菜单选择重命名
- **删除视频**:支持单个删除或批量删除
- **排序**:支持按名称、大小、时间排序
### 批量操作
1. 勾选需要操作的视频
2. 点击「删除选中项」进行批量删除
3. 支持全选/取消全选操作
## 🏗️ 项目结构
```
VideoDown-Go/
├── main.go # 主程序文件
├── go.mod # Go 模块文件
├── go.sum # 依赖校验文件
├── README.md # 项目说明文档
├── bin/ # 外部工具目录
│ ├── ffmpeg.exe # 视频处理工具
│ ├── ffplay.exe # 视频播放工具
│ ├── ffprobe.exe # 视频信息工具
│ └── yt-dlp.exe # 视频下载工具
├── templates/ # 模板文件目录
│ └── index.html # 主页面模板
├── static/ # 静态资源目录
├── thumbnails/ # 缩略图存储目录
└── *.mp4 # 下载的视频文件
```
## 🔧 配置说明
### 服务器配置
- **端口**:默认 8888,可在 `main.go` 中修改
- **存储路径**:视频和缩略图默认存储在项目根目录
### 缩略图配置
程序会根据视频宽高比自动选择最佳的缩略图显示方式:
- 竖屏视频(宽高比 < 0.8):使用竖向缩略图
- 方形视频(宽高比 0.8-1.3):使用方形缩略图
- 横屏视频(宽高比 > 1.3):使用横向缩略图
## 🌟 技术亮点
### 智能缩略图系统
- **FFmpeg 优化**:使用 `scale='min(320,iw)':-1` 保持原始宽高比
- **CSS 自适应**:结合 `object-fit: contain` 确保完整显示
- **JavaScript 检测**:动态检测图片宽高比并应用相应样式
### 现代化前端
- **响应式设计**:适配各种屏幕尺寸
- **实时更新**:WebSocket 实现实时状态同步
- **用户体验**:流畅的动画效果和交互反馈
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🙏 致谢
- [yt-dlp](https://github.com/yt-dlp/yt-dlp) - 强大的视频下载工具
- [FFmpeg](https://ffmpeg.org/) - 优秀的多媒体处理框架
- [Go](https://golang.org/) - 高效的编程语言
## 📞 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 [Issue](https://github.com/oskey/VideoDown-Go/issues)
- 访问 [Releases 页面](https://github.com/oskey/VideoDown-Go/releases) 获取最新版本
---
⭐ 如果这个项目对你有帮助,请给它一个 Star!