一个浏览器插件扩展程序和本地后端系统,可在用户访问 YouTube 视频时自动将其存档。该系统由一个 Firefox 扩展程序(可检测 YouTube 视频页面)和一个 Go 后端(可使用 yt-dlp 下载视频)组成。
后端(Go)
- HTTP 服务器(main.go):在端口 3009 上运行,具有两个端点:
- /:基本健康检查端点
- /youtube:接受视频 ID 并触发下载的 POST 端点
- 视频下载器(youtube.go):使用 yt-dlp 和 ffmpeg 下载 YouTube 视频,并使用 h264_videotoolbox 编码将其转换为 MOV 格式
- 字幕支持:下载 VTT 格式的英文字幕(当前在重试循环中禁用)
浏览器扩展(Firefox)
- 清单(manifest.json):定义扩展权限和结构
- 内容脚本(content.js):自动检测 YouTube 视频页面并从 URL 中提取视频 ID
- 后台脚本(background.js):处理内容脚本和后端 API 之间的通信
- 弹出界面(popup.html/js):提供一个简单的用户界面,用于手动获取数据
工作原理
- 当你访问 YouTube 视频页面时,内容脚本会自动从 URL 中检测视频 ID
- 视频 ID 被发送到后台脚本,该脚本向http://localhost:3009/youtube
- Go后端接收视频ID并使用yt-dlp下载视频
- 视频保存到./data/目录并使用带硬件加速的 ffmpeg 转换为 MOV 格式
- 系统还支持字幕下载(目前仅限1次尝试)
设置
- 启动 Go 后端:go run .
- firefox/从目录加载 Firefox 扩展
- 访问任何 YouTube 视频页面即可自动触发存档
依赖项
- yt-dlp:用于下载 YouTube 视频
- ffmpeg:用于视频格式转换和处理
- Go:后端服务器运行时