界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

zhihu-transcribe

zhihu-transcribe

【效率与协作】知乎视频 → 下载 → 转录 → 存为 Markdown。 支持知乎视频链接、问答内嵌视频和专栏文章,无需登录。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: zhihu-transcribe description: > 知乎视频 → 下载 → 转录 → 存为 Markdown。 支持知乎视频链接、问答内嵌视频和专栏文章,无需登录。 metadata: category: "media" triggers: "["用户发送知乎视频链接", "把这个知乎视频转成文字", "帮我转录这个知乎"]" version: "1.0.0" tags: "[media, video, transcription, zhihu]"

知乎视频转录 Skill

将知乎视频下载音频,用 SenseVoice-Small 转录为文字,存为带 frontmatter 的 Markdown 文件。

环境要求

# Python 3.9+
python -m venv .venv
source .venv/bin/activate

# 依赖
pip install funasr modelscope torch torchaudio

# 系统依赖
# macOS: brew install ffmpeg yt-dlp
# Ubuntu: sudo apt install ffmpeg && pip install yt-dlp

使用方法

# 独立视频页
python scripts/transcribe.py "https://www.zhihu.com/video/1234567890"

# 问答内嵌视频(脚本自动提取视频 ID)
python scripts/transcribe.py "https://www.zhihu.com/question/12345/answer/67890"

# 专栏文章(内嵌视频会被提取)
python scripts/transcribe.py "https://zhuanlan.zhihu.com/p/123456"

# 指定输出目录
python scripts/transcribe.py "https://www.zhihu.com/video/1234567890" -o ./output

流程

Step 1: yt-dlp 下载音频

知乎视频页、问答页和专栏文章的链接形态不同,脚本统一交给 yt-dlp 解析。Referer + UA 伪装可规避基础反爬。

yt-dlp --extract-audio --audio-format mp3 --audio-quality 128K \
  --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ..." \
  --referer "https://www.zhihu.com/" \
  "https://www.zhihu.com/video/1234567890"

Step 2: SenseVoice-Small 转录

from funasr import AutoModel

model = AutoModel(
    model="iic/SenseVoiceSmall",
    trust_remote_code=True,
    vad_model="fsmn-vad",
    vad_kwargs={"max_single_segment_time": 30000},
    device="cpu",
)

result = model.generate(
    input=audio_path,
    language="zh",
    use_itn=True,
    batch_size_s=60,
)

Step 3: 生成 Markdown

脚本自动创建带 frontmatter 的 Markdown 文件,包含来源链接、标题、语言和转录文本。下载失败会自动重试。

已知限制

  • 内嵌视频:问答和专栏中的内嵌视频依赖 yt-dlp 正确提取视频 ID;若页面结构变化可能导致提取失败
  • 反爬:知乎对频繁请求有限流;脚本已内置重试,建议单次处理间隔不少于 3 秒
  • 登录态:盐选内容、仅会员可见视频需要登录,当前脚本不携带登录态
  • 语言:知乎以中文为主,脚本默认 language=zh;英文内容建议改用 youtube-transcribe
  • 模型大小:SenseVoice-Small 首次下载约 893MB

致谢

⚖️ 合规声明

仅供个人学习与研究使用。请遵守目标平台的服务条款(ToS)与 robots 规则,控制请求频率,不要用于批量抓取、商用爬取或侵犯他人权益的场景。下载内容的版权归原作者所有。

我的收藏