mcpField
Y
youtube-transcript

youtube-transcript

github.com/glebis生产力402253 次安装2 天前更新
代码仓库

关于 youtube-transcript

youtube-transcript 是用于提取 YouTube 字幕、视频元数据和章节的技能,并将内容整理为 Markdown 文件保存到 Obsidian vault。适合归档和查阅带时间戳的字幕。

主要功能

  1. 01提取字幕与视频元数据
  2. 02按章节整理字幕片段
  3. 03生成带 YAML frontmatter 的 Markdown
  4. 04清理 VTT 字幕重复内容

适用场景

  1. 01归档 YouTube 视频字幕
  2. 02按章节查看带时间戳的内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/glebis/claude-skills --skill youtube-transcript

安装后在 Claude Code 中输入/youtube-transcript确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
scripts/
deduplicate_transcript.py
extract_transcript.py

详细介绍

YouTube 转录文本

概述

使用 yt-dlp 提取 YouTube 视频的转录文本、元数据和章节。输出为带有 YAML 前置元数据的 Markdown 格式,并保存到 ~/Brains/brain/(Obsidian 知识库)中。

快速开始

从 YouTube 视频中提取转录文本:

python scripts/extract_transcript.py <youtube_url>

可选:指定自定义输出文件名:

python scripts/extract_transcript.py <youtube_url> custom_filename.md

输出格式

YAML 前置元数据

生成的 Markdown 包含完整的元数据:

  • title - 视频标题
  • channel - 频道名称
  • url - YouTube URL
  • upload_date - 上传日期(YYYY-MM-DD)
  • duration - 视频时长(HH:MM:SS)
  • description - 视频描述(截断至 500 个字符)
  • tags - 视频标签数组
  • view_count - 观看次数
  • like_count - 点赞次数
正文结构

按视频章节组织转录文本(如果有):

## Chapter Title

**00:05:23** Transcript text for this segment.

**00:05:45** Next segment text.

如果没有章节,所有内容都会显示在“## Transcript”标题下。

时间戳统一采用 HH:MM:SS 格式。

工作流

  1. 使用 yt-dlp 提取元数据和字幕
  2. 解析 VTT 字幕格式以提取时间戳和文本
  3. 按视频章节分组转录片段(如果有)
  4. 将内容格式化为带有 YAML 前置元数据的 Markdown
  5. 根据视频标题生成经过清理的文件名,并保存到 ~/Brains/brain/
  6. 清理临时字幕文件

去重

移除现有转录文件中的重复内容:

python scripts/deduplicate_transcript.py <markdown_file>

这会移除作为后续条目前缀的转录条目(VTT 文件中字幕不断累积时常会出现这种情况)。

要求

确保已安装 yt-dlp:

pip install yt-dlp

限制

  • 优先提取英文字幕;如果没有英文字幕,则改用俄文字幕
  • 视频必须带有字幕(自动生成或手动添加)
  • 不会下载视频或音频文件
  • 前置元数据中的描述会截断至 500 个字符

评论

支持 Markdown