一键导入
youtube-podcast-to-md
将 YouTube 播客视频字幕提取并整理为中文 Markdown 笔记,默认针对英文播客优化,支持「核心摘要」和「对话高保真还原」两种模式
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
将 YouTube 播客视频字幕提取并整理为中文 Markdown 笔记,默认针对英文播客优化,支持「核心摘要」和「对话高保真还原」两种模式
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当用户想学习某个领域、技能、工具、课程、考试、证书、职业能力或知识体系,并需要个性化学习路径、学习计划、学习方法论、学习路线、学习策略、复盘调整时使用。 典型触发:"帮我设计学习路径""我想系统学习 AI/编程/数据分析""给我一个 30 天学习计划""帮我规划转岗学习路线""怎么备考这个证书"。 不要用于:只问单个知识点解释、只要资料清单、只要普通日程安排、或不需要个性化诊断的简单摘要。
当用户想把 HTML 网页、Markdown 文章、纯文本、访谈记录、产品资料或一个主题改造成可直接发布的小红书/RedNote 图文时使用。 用户可能会说“帮我生成小红书图文”“把这篇文章做成小红书”“生成可发布的图文笔记”“直接生图并给我发布文案”。 如果用户只是想做普通摘要、公众号长文、微博/推文、视频脚本,或明确不需要小红书图文交付包,则不应触发。
当用户上传论文 PDF 或提供 arXiv 链接并请求解读时使用。 触发:"帮我解读这篇论文""解读论文""解读下这篇 paper""论文解读"。 不要用于:事实查询("这篇论文发在哪""作者是谁")、非学术论文(新闻/博客/报道)、 内容不足 2 页的短文。
当用户想创建一个新的 Skill 但需求模糊、不完整或过于宽泛时使用。 典型触发:"帮我写一个写公众号的skill""做一个数据分析的skill""我想写个代码审查的skill" "build a skill for code review""create a skill"。也适用于用户说"写一个skill" "创建一个skill""设计一个skill""做一个skill"等场景。不要用于:用户问 Skill 概念性问题("什么是Skill""Skill怎么写")、用户已有详细任务卡或规格、用户要修改 已有 Skill。
| name | youtube-podcast-to-md |
| description | 将 YouTube 播客视频字幕提取并整理为中文 Markdown 笔记,默认针对英文播客优化,支持「核心摘要」和「对话高保真还原」两种模式 |
将 YouTube 播客视频的字幕提取,整理为高质量中文 Markdown 文档,默认针对英文播客优化;其他语言也可尽力处理。两种输出模式:
全局约定:
${YTP2MD_TMP_DIR:-/tmp/youtube-podcast-to-md/}${YTP2MD_OUTPUT_DIR:-$PWD};若用户想直接落到某个笔记库或知识库目录,请显式把 YTP2MD_OUTPUT_DIR 指向目标目录${YTP2MD_TMP_DIR:-/tmp/youtube-podcast-to-md/} 中的中间文件python3yt-dlp 可以直接在 PATH 中可用,或通过 python3 -m yt_dlp 可用;不要依赖某台机器上的固定 PATHSKILL_DIR 视为当前 skill 根目录(即包含本 SKILL.md 的目录)从用户消息中提取:
SKILL_DIR="/absolute/path/to/youtube-podcast-to-md"
TMP_DIR="${YTP2MD_TMP_DIR:-/tmp/youtube-podcast-to-md}"
OUTPUT_DIR="${YTP2MD_OUTPUT_DIR:-$PWD}"
mkdir -p "$TMP_DIR" "$OUTPUT_DIR"
python3 -m pip install --quiet yt-dlp youtube-transcript-api
若需 Whisper 兜底,额外安装以下其一:
python3 -m pip install --quiet faster-whisper
# 或
python3 -m pip install --quiet openai-whisper
若遇到权限问题可改用 python3 -m pip install --user ...;在虚拟环境中则无需额外参数。
运行 python3 "$SKILL_DIR/scripts/fetch_transcript.py" <URL> "$TMP_DIR",脚本按优先级自动选择:
python3 "$SKILL_DIR/scripts/fetch_with_whisper.py" <URL> "$TMP_DIR" 使用 Whisper 离线转录补充说明:
fetch_transcript.py 会优先拿英文字幕;如果只有其他语言字幕,会继续返回该语言字幕fetch_with_whisper.py 默认使用 --language auto 自动识别语言;若你明确只想按英文转录,可传 --language en中间文件(位于 "$TMP_DIR"):
transcript_raw.txt — 原始字幕文本(含 [TS:MM:SS] 时间戳标记)transcript_meta.json — 视频元数据(标题、频道、时长、字幕来源等)运行 python3 "$SKILL_DIR/scripts/clean_transcript.py" "$TMP_DIR/transcript_raw.txt" "$TMP_DIR",执行:
[Music]、[Applause] 等)中间文件(位于 "$TMP_DIR"):
transcript_clean.txt — 清洗后的完整字幕文本chunks.json — 分块数据(每块含 chunk_index、start_time、end_time、text、word_count 字段;chunk_index 从 1 开始)读取 references/prompt_templates.md 获取对应模式的 prompt 模板。
分块处理策略:
"$TMP_DIR/chunks.json",按 chunk_index 顺序处理两种模式的行为差异:
| 维度 | 精简版 | 完整版 |
|---|---|---|
| 目标 | 提取核心价值 | 还原完整对话 |
| 内容比例 | 原文 30-40% | 接近 100%,过滤掉口头禅 |
| 结构 | 按主题归类,用列表呈现 | 按对话时间线,保留说话人切换 |
| 语言 | 中文摘要 | 中文书面化对话 |
| 典型场景 | 快速了解观点 | 深入理解论述过程 |
所有分块处理完毕后,使用整合 prompt 做全局统合(合并重复话题、统一标题层级、生成头尾模块)。
按 references/output_format.md 中对应模式的格式规范组装文档。
最终输出路径: "$OUTPUT_DIR/<文件名>.md"
若用户想把结果直接落到某个笔记库目录,可先执行:
export YTP2MD_OUTPUT_DIR="/path/to/your/notes/youtube-podcast-notes"
mkdir -p "$YTP2MD_OUTPUT_DIR"
文件命名规则:{频道名}_{视频标题前20字}_{YYYYMMDD}_{mode}.md
(特殊字符 / \ : * ? " < > | 替换为 _)
删除中间文件目录:
rm -rf "$TMP_DIR"
告知用户:
| 情况 | 处理方式 |
|---|---|
| 视频无任何字幕且 Whisper 不可用 | 告知用户无法处理,说明原因 |
| 视频为私密/会员内容 | 明确报错,提示无法访问非公开视频 |
| 字幕语言非英文 | 可继续处理;若走 Whisper 兜底,优先使用 --language auto 或显式传入语言代码 |
| 视频超过 3 小时 | 警告处理时间较长,建议只处理用户感兴趣的时间段 |
| 文件 | 用途 | 使用步骤 |
|---|---|---|
scripts/fetch_transcript.py | 字幕获取(youtube-transcript-api + yt-dlp) | Step 3 时读取并执行 |
scripts/fetch_with_whisper.py | Whisper 离线转录兜底 | Step 3 备选方案 |
scripts/clean_transcript.py | 字幕清洗与自动分块 | Step 4 时读取并执行 |
references/prompt_templates.md | 模型内容重建 prompt 模板 | Step 5 时读取 |
references/output_format.md | Markdown 输出格式规范 | Step 6 时读取 |