YouTube字幕提取工具

一个命令行工具,用于从YouTube视频中提取字幕,支持多种URL格式并可选择是否包含时间戳。

  • by tlofreso
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 tlofreso/mcp-youtube-transcripts

使用说明

YouTube转录提取器

一个命令行工具,从YouTube视频中提取转录本,支持各种URL格式,并输出带有可选时间戳的转录本。使用Python构建并使用脚本依赖关系管理。

特性

  • 使用URL或视频ID从YouTube视频中提取转录
  • 支持多种YouTube URL格式:
    • 标准观看网址(youtube.com/watch?v=…)
    • 缩短网址(youtu.be/…)
    • 嵌入网址(youtube.com/Embed/…)
  • HH:MM:SS格式的可配置时间戳包含
  • 灵活的输出选项(文件或stdout)
  • 常见场景的全面错误处理

安装

此工具使用脚本依赖关系规范格式:

git clone https://github.com/tlofreso/mcp-youtube-transcripts.git
cd mcp-youtube-transcripts

脚本的依赖关系通过脚本头自动管理:

# /// script
# requires-python = ">=3.12"
# dependencies = [
#     "click",
#     "youtube_transcript_api",
# ]
# ///

用法

基本命令格式:

python youtube_transcript.py <youtube-url> [options]

选项

  • -o, --output:指定输出文件路径(默认:stdout)
  • --timestamps/--no-timestamps:包括/排除时间戳(默认值:包括)

例子

  1. 将成绩单提取到控制台(带时间戳):
python youtube_transcript.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  1. 将成绩单保存到文件(不带时间戳):
python youtube_transcript.py "https://youtu.be/dQw4w9WgXcQ" -o transcript.txt --no-timestamps
  1. 处理嵌入URL:
python youtube_transcript.py "https://www.youtube.com/embed/dQw4w9WgXcQ"

输出格式

带时间戳(默认):

[00:00:00] First line of the transcript
[00:00:03] Second line of the transcript
[00:00:07] Third line of the transcript

没有时间戳:

First line of the transcript
Second line of the transcript
Third line of the transcript

错误处理

该工具为常见场景提供了清晰的错误消息:

  • 视频中的文字记录已禁用
  • 无效或格式错误的YouTube URL
  • 网络连接问题
  • 文件权限问题
  • 缺少或无效的视频ID

需求

  • Python 3.12或更高版本
  • 自动安装的依赖项:
    • 单击:用于命令行界面
    • youtube_transcript_api:用于获取转录本

贡献

欢迎投稿!请随时提交问题和拉取请求。

许可证

这个项目是开源的,可以在MIT许可证下使用。