starchive浏览器插件:自动保存YouTube视频到本地后端

banq


一个浏览器插件扩展程序和本地后端系统,可在用户访问 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):提供一个简单的用户界面,用于手动获取数据

工作原理
  1. 当你访问 YouTube 视频页面时,内容脚本会自动从 URL 中检测视频 ID
  2. 视频 ID 被发送到后台脚本,该脚本向http://localhost:3009/youtube
  3. Go后端接收视频ID并使用yt-dlp下载视频
  4. 视频保存到./data/目录并使用带硬件加速的 ffmpeg 转换为 MOV 格式
  5. 系统还支持字幕下载(目前仅限1次尝试)

设置
  1. 启动 Go 后端:go run .
  2. firefox/从目录加载 Firefox 扩展
  3. 访问任何 YouTube 视频页面即可自动触发存档

依赖项
  • yt-dlp:用于下载 YouTube 视频
  • ffmpeg:用于视频格式转换和处理
  • Go:后端服务器运行时