SuperAPI AI 工具集

youtube-transcript

办公与效率

查看项目

更新于 10-15 14:30

技能介绍

用途

youtube-transcript 是一个用于下载 YouTube 视频转录文本(字幕/说明文字)的技能,底层依赖 yt-dlp 工具。当用户提供 YouTube 链接,或提出“下载 YouTube 转录文本”“获取字幕”“获取说明文字”“转录 YouTube 视频”等需求,或需要视频的文字内容时,可启用该技能。

主要能力

  • 检查并(在可能时)自动安装 yt-dlp。
  • 列出视频可用的字幕类型与语言。
  • 优先下载人工字幕(质量最高)。
  • 人工字幕不可用时回退到自动生成字幕。
  • 两者都不可用时,作为最后手段使用 Whisper 进行语音转录(需用户确认)。
  • 将 VTT 字幕转换为去重的纯文本,便于阅读或分析。
  • 支持提取视频标题用于生成有意义的文件名。

使用方式

技能按以下优先级顺序工作:

  1. 检查 yt-dlp 是否已安装,未安装则尝试安装。
  2. 列出可用字幕:yt-dlp --list-subs "YOUTUBE_URL"。
  3. 优先尝试人工字幕:yt-dlp --write-sub --skip-download --output "OUTPUT_NAME" "YOUTUBE_URL"。
  4. 回退到自动生成字幕:yt-dlp --write-auto-sub --skip-download --output "OUTPUT_NAME" "YOUTUBE_URL"。
  5. 最后手段使用 Whisper 转录(需用户确认)。
  6. 确认下载并告知用户文件保存位置。
  7. 可选地将 VTT 格式清理为纯文本。

安装检查命令:which yt-dlp || command -v yt-dlp。

若未安装,按系统尝试自动安装:

  • macOS(Homebrew):brew install yt-dlp
  • Linux(apt/Debian/Ubuntu):sudo apt update && sudo apt install -y yt-dlp
  • 通用(pip):pip3 install yt-dlp 或 python3 -m pip install yt-dlp

若安装失败,需告知用户手动安装,并提供 https://github.com/yt-dlp/yt-dlp#installation 的安装说明。

Whisper 转录流程(仅当人工与自动字幕均不可用时):

  • 先显示音频文件大小并请求用户确认。
  • 检查 Whisper 是否安装:command -v whisper。
  • 未安装时询问用户是否安装:pip3 install openai-whisper(模型约需 1-3GB)。
  • 仅下载音频:yt-dlp -x --audio-format mp3 --output "audio_%(id)s.%(ext)s" "YOUTUBE_URL"。
  • 使用 Whisper 转录:whisper audio_VIDEO_ID.mp3 --model base --output_format vtt(可加 --language en 指定语言)。
  • 转录完成后询问是否删除音频文件。

模型选项:tiny(最快、最不准,约 1GB)、base(平衡,约 1GB,推荐使用)、small(约 2GB)、medium(约 5GB)、large(最准,约 10GB)。

输出格式

  • VTT 格式(.vtt):包含时间戳与格式,适合视频播放器。
  • 纯文本(.txt):仅文本内容,适合阅读或分析。

文件名格式为 {output_name}.{language_code}.vtt(例如 transcript.en.vtt)。

适用场景

  • 需要 YouTube 视频的文字内容用于阅读、分析或后续处理。
  • 需要下载视频字幕文件。
  • 视频没有字幕时,希望通过语音转录获得文本。

限制

  • 依赖 yt-dlp,未安装时需先安装。
  • 部分视频可能为私密、有年龄限制或地区封锁,导致无法下载。
  • Whisper 转录需要用户确认,且可能依赖系统组件(ffmpeg、rust),模型需 1-10GB 磁盘空间。
  • 自动生成字幕可能包含重复行,转换为纯文本时需去重。
  • 默认下载所有可用语言字幕,可用 --sub-langs en 指定单一语言。

最佳实践

  • 下载前先用 --list-subs 确认可用字幕。
  • 每步验证成功后再继续。
  • 大文件下载(音频、Whisper 模型)前先询问用户。
  • 处理完成后清理临时文件。
  • 各阶段提供清晰反馈,优雅处理错误。