360 Secure SkillHub
360 安全技能中心

Douyin Text

通过 Python 脚本下载抖音视频并用 Whisper 生成原始转录,再由 Claude 会话完成错字校对、自然分段与核心观点提炼,一次性输出含原始转录、整理后文案和核心观点的 Markdown 文件。

xiao2769433
xiao2769433
热度 11.35
最近更新 2026-07-18 21:15:01
分类:效率依赖:代码执行 / 读写文件 / 内部调用大模型应用场景:摘要总结 / 校对润色 / 笔记整理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add douyin-text
Metadata
name
douyin-text
description
Use when the user wants to extract spoken text from a Douyin video link and produce a corrected, readable Chinese transcript
user-invocable
true

抖音视频语音文案提取

从抖音视频中提取语音内容:Python 只负责下载视频和 Whisper 原始转录;Claude Code 基于原始转录完成动态校对、自然分段、核心观点提炼,并一次性生成最终 Markdown 文档。

核心原则

每次用户调用 /douyin-text,必须严格按以下 4 步执行:

  1. Python 提取原始转录

    • 下载视频
    • 提取音频
    • Whisper 生成完整原始转录
    • 不生成 Markdown 文档
    • 不生成"整理后文案"
    • 不生成"核心观点"
  2. Claude 读取 Python 输出的 JSON

    • 拿到 transcription_raw 原始转录文本
    • 拿到视频元信息:链接、作者、视频描述
  3. Claude 完成动态校对、自然分段、核心观点

    • 根据上下文修正 Whisper 识别错误
    • 去除口癖、重复、无意义语气词
    • 按语义自然分段
    • 重新提炼 3-5 条核心观点
  4. Claude 一次性生成最终 Markdown 文件

    • 不读取任何旧 Markdown
    • 不回写半成品
    • 用 Write 工具直接创建成品文档

不需要额外配置 Claude API 或 OpenAI API。 AI 动态校对由当前 Claude Code 会话完成。


使用方法

/douyin-text <抖音视频链接>

示例:

/douyin-text https://v.douyin.com/xxxxx

参数

  • url:抖音视频链接,必填
    • 支持 https://v.douyin.com/xxxxx
    • 支持 https://www.douyin.com/video/xxxxx
  • --whisper-model:Whisper 模型大小,可选 tiny/base/small/medium/large,默认 small
  • --desc:仅提取视频描述文字,不下载视频
  • --cookies-browser:从浏览器导入 cookies,默认 chrome
  • --cookies-file:使用 cookies.txt 文件
  • --no-cookies:不使用 cookies
  • --update-ytdlp:更新 yt-dlp

必须执行的工作流

当用户调用:

/douyin-text <链接>

Claude 必须严格按以下 4 步执行。绝对禁止跳步、合并步骤,或直接使用 Python 生成的旧版完整 Markdown。

步骤 1:Python 提取原始转录(不生成 Markdown)

在 skill 目录运行(必须带 --raw-json 参数):

cd C:/Users/10911/.claude/skills/douyin-text && python extract.py --raw-json '<用户提供的链接>'

如果用户传了 --whisper-model 等参数,要原样传给 extract.py:

cd C:/Users/10911/.claude/skills/douyin-text && python extract.py --raw-json --whisper-model medium 'https://v.douyin.com/xxxxx/'

这一步的职责仅限于:

  • 下载视频
  • 提取音频
  • Whisper 生成完整原始转录

这一步不会生成任何 Markdown 文档、不会生成"整理后文案"、不会生成"核心观点"。

步骤 2:解析 JSON 原始数据

--raw-json 模式会向 stdout 输出 JSON,结构如下:

{
  "url": "https://v.douyin.com/xxxxx",
  "author": "作者昵称",
  "description": "视频描述文字",
  "transcription_raw": "Whisper 原始转录全文",
  "error": null
}

Claude 必须:

  • 从 stdout 解析 JSON(可能混在脚本日志中,取最后一段合法 JSON 块)
  • 如果 error 不为 null 或 transcription_raw 为空,立即向用户报告错误并停止;不得编造内容
  • 不得读取 output/ 目录下任何已有 Markdown 文件

步骤 3:Claude 完成动态校对、自然分段、核心观点

Claude 基于 transcription_raw 完成以下处理(全部在 Claude 侧,不再调用 Python):

3.1 动态校对

  • 根据上下文修正明显 ASR/Whisper 识别错误
  • 修正人名、地名、书名、成语、诗词、专有名词、常识性错词
  • 去除明显语气词、口癖、无意义重复
  • 不添加原文没有的信息
  • 不改变说话人的核心观点
  • 不把口播稿改成过度正式的论文腔

3.2 自然分段

  • 按语义自然分段
  • 每段表达一个相对完整的意思
  • 段落之间用空行分隔

3.3 提炼核心观点

  • 3-5 条
  • 完整、通顺的中文句子
  • 不保留明显错词
  • 不使用过碎、半截、乱码式表达
  • 概括观点,而不是复制原句碎片

步骤 4:一次性生成最终 Markdown 文件

Claude 使用 Write 工具一次性创建最终 Markdown 文件。

绝对禁止:

  • 不得先生成半成品再回写
  • 不得读取并修改 Python 生成的旧版 Markdown
  • 不得分多次 Edit 同一个文件

文件路径规则:

C:/Users/10911/.claude/skills/douyin-text/output/douyin_<YYYYMMDD_HHMMSS>_<作者>.md
  • 时间戳取当前时间
  • 作者名清理掉 Windows 非法字符 \ / : * ? " < > |,并截断到 20 字符
  • 如果作者名为空,省略该段,文件名形如 douyin_<时间戳>.md

文件内容结构(严格按以下格式生成):


📹 抖音视频语音文案
══════════════════════════════════════════════════

🔗 链接:<url>
👤 作者:@<author>
📝 视频描述:<description>

══════════════════════════════════════════════════
🎤 原始语音转录(<字数> 字)
──────────────────────────────────────────────────
<transcription_raw,保持原文不动,含 Whisper 输出的换行>

══════════════════════════════════════════════════
✨ 整理后文案
──────────────────────────────────────────────────
<Claude 校对、自然分段后的版本,段落间用空行分隔>

══════════════════════════════════════════════════
💡 核心观点
──────────────────────────────────────────────────
1. <观点一>
2. <观点二>
3. <观点三>

══════════════════════════════════════════════════
  • "原始语音转录"区域字字必须等于 transcription_raw,不得做任何替换、整理或省略
  • 如果 author 或 description 为空,对应行可省略,但其余结构必须完整保留
  • 字数 = len(transcription_raw)

步骤 5:回复用户

最终回复必须包含:

  • 生成的 Markdown 文件完整路径
  • 简短摘要(1-2 句话)
  • 如发现典型纠错,列出 3-8 个例子(原始 → 校对后)

AI 动态校对规则

应该修正的内容

明显由语音识别造成的错误,例如:

Whisper 可能输出 应修正为
普提祖师 菩提祖师
普提老祖 菩提老祖
西邮季 西游记
金斗云 筋斗云
七十二遍 七十二变
斗战圣佛 斗战胜佛
元风五年 元丰五年
被扁黄周 被贬黄州
回首向来消瘦处 回首向来萧瑟处
规去也无风雨也无情 归去,也无风雨也无晴

这些只是示例。实际执行时,Claude 应根据上下文动态判断,不局限于固定规则表。

需要谨慎处理的内容

如果某个词可能有多种解释,不要强行改。

例如:

  • “苏氏家族”不应强行改成“苏轼家族”
  • “行者”在《西游记》语境下可能是“孙行者”,不应随意删除
  • 口播中的特殊表达,如果不是明显错词,应尽量保留原意

不应该做的事

  • 不要修改“原始语音转录”区域。
  • 不要添加原文没有的信息。
  • 不要把说话人的观点换成 Claude 自己的观点。
  • 不要为了文采过度润色。
  • 不要删除重要论证内容。
  • 不要只输出一整段长文本。
  • 不要让“核心观点”保留乱码、半句、错词。

整理后文案格式要求

“整理后文案”必须自然分段。

好的格式

菩提祖师是孙悟空非常重要的师父。在《西游记》里,他是真正教给孙悟空本领的人。

孙悟空的名字,是菩提祖师给的;孙悟空的筋斗云、七十二变,也都是菩提祖师传授的。

相比之下,唐僧给孙悟空的更多是一路上的磨炼和约束。唐僧没有教孙悟空本领,却让他在取经路上经历约束、受苦和修行。

所以,菩提祖师给的是本事和根基,唐僧给的是磨炼和修行。两个人对孙悟空都重要,只是重要的方式不同。

不好的格式

我问你个问题,孙悟空的师父是谁? 唐僧,普提老祖。你怎么知道是普提祖师? 他叫他本领。大多数人会认为是唐僧。但是你看,在孙悟空整个西邮季的这一百回里面...

问题:

  • 没有分段
  • 错词未修正
  • 可读性差
  • 像字幕拼接,不像整理文案

长文本处理规则

如果原始转录很长,Claude 仍应完整处理 transcription_raw 全文。

如果单次处理上下文过长:

  1. transcription_raw 全文必须原样写入"原始语音转录"区域,不得截断。
  2. 分批校对"整理后文案"。
  3. 合并成一个完整、自然分段的版本。
  4. 再统一生成核心观点。
  5. 最后一次性 Write 生成最终 Markdown 文件。

不要只整理前 300 字就结束。 不要分多次 Edit 同一个最终文件。


输出规则

内容长度 控制台行为 文件保存
≤ 1000 字 可在回复中展示较完整内容 保存校对后的完整版
> 1000 字 回复摘要 + 文件路径 + 典型纠错 保存校对后的完整版

故障处理

情况 处理方式
Python 脚本下载失败 如实报告错误,提示确保浏览器已登录抖音,或尝试 cookies
Whisper 未安装 提示安装 openai-whisper
moviepy 未安装 提示安装 moviepy
找不到 ffmpeg 提示安装 ffmpeg 或 imageio-ffmpeg
Whisper 转录失败 如实报告错误,不编造文案
Claude 后处理时不确定某个词 保留原词,或在最终回复中说明“疑似”
原始转录过长 分段校对后合并,但仍一次性 Write 生成最终文件

注意事项

  • 仅支持公开可见的视频。
  • 首次使用会下载 Whisper 模型。
  • CPU 模式下 small 模型处理 1 分钟视频约 30 秒。
  • 提取的文案仅供个人学习使用。
  • Claude Code 动态校对不需要额外配置 AI API。
  • 如果用户只要求“提取原始转录”,仍应保留原始转录并说明是否跳过校对。