douyin-transcribe
chubbyguan/chubbyskills/douyin-transcribe/SKILL.md
抖音视频 → 下载 → 转录 → 存为 Markdown 的完整工作流。 支持短链接和完整链接;优先无 cookie 直采,被风控时回退 yt-dlp + 浏览器 cookie(无需登录)。
Skill1.2k starsChanged 3 months ago
- Installs packages
What's in it
- 抖音视频转录 Skill
- 环境要求
- 使用方法
- 流程(3 步)
- Step 1: 从抖音下载音频
- Step 2: SenseVoice-Small 转录
- Step 3: 生成 Markdown
- 性能数据
- 已知限制
- 参考项目
- ⚖️ 合规声明
---
name: douyin-transcribe
description: >
抖音视频 → 下载 → 转录 → 存为 Markdown 的完整工作流。
支持短链接和完整链接;优先无 cookie 直采,被风控时回退 yt-dlp + 浏览器 cookie(无需登录)。
metadata:
category: "media"
triggers: "[\"用户发送抖音分享链接或口头提到要转录抖音视频\", \"把这个抖音视频转成文字\", \"帮我转录这个抖音\"]"
version: "1.0.0"
tags: "[\"media\", \"audio\", \"video\", \"transcription\", \"douyin\"]"
---
# 抖音视频转录 Skill
将抖音视频下载音频,用 SenseVoice-Small 转录为文字,存为 Markdown 文件。
## 环境要求
```bash
# Python 3.9+
python -m venv .venv
source .venv/bin/activate
# 依赖
pip install funasr modelscope torch torchaudio
# 系统依赖
# macOS: brew install ffmpeg
# Ubuntu: sudo apt install ffmpeg
```
## 使用方法
```bash
python scripts/transcribe.py "https://v.douyin.com/xxxxx"
```
## 流程(3 步)
### Step 1: 从抖音下载音频
使用 `iesdouyin.com/share/video/<id>` + 移动端 UA 获取 `window._ROUTER_DATA`,提取 CDN 下载链接。
**关键点:**
- ✅ `iesdouyin.com/share/video/` 而非 `douyin.com/video/`
- ✅ 移动端 UA 必须用 iPhone
- ✅ `playwm` → `play` 去水印
- ⚠️ 首选无 cookie 直采;若分享页返回蜘蛛壳(风控),自动回退 yt-dlp + `YTDLP_COOKIES_FROM_BROWSER`(浏览器打开过 douyin.com 即可,无需登录)
### Step 2: SenseVoice-Small 转录
```python
from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess
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 文件。
## 性能数据
| 视频时长 | 模型加载 | 转录耗时 | 总耗时 |
|------|------|------|------|
| 10 min | ~30s | ~25s | ~1 min |
| 30 min | ~30s | ~75s | ~2 min |
| 1h 22min | ~40s | ~180s | ~4 min |
## 已知限制
- SenseVoice-Small 模型首次下载约 893MB(从 ModelScope,国内快)
- CPU 推理质量略低于 GPU,但中文仍优于 Whisper-small
- VAD 自动切分可能把长停顿处切成两段
- 不支持说话人分离
- yt-dlp 不可用(需要 cookie),必须走 iesdouyin 路线
## 参考项目
- [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) - 语音识别模型
- [FunASR](https://github.com/modelscope/FunASR) - 语音识别框架
- [vangie/douyin-transcriber](https://github.com/vangie/douyin-transcriber) - 原始灵感(Go CLI)
## ⚖️ 合规声明
仅供**个人学习与研究**使用。请遵守目标平台的服务条款(ToS)与 robots 规则,控制请求频率,不要用于批量抓取、商用爬取或侵犯他人权益的场景。下载内容的版权归原作者所有。
More agent context in chubbyguan/chubbyskills
13 other files this repository gives its agents.
Skill
- bilibili-transcribebilibili-transcribe/SKILL.md
- content-enrichcontent-enrich/SKILL.md
- industry-intelligence-radarindustry-intelligence-radar/SKILL.md
- knowledge-base-managementknowledge-base-management/SKILL.md
- learning-notes-automationlearning-notes-automation/SKILL.md
- podcast-transcribepodcast-transcribe/SKILL.md
- tiktok-transcribetiktok-transcribe/SKILL.md
- wechat-article-ingestwechat-article-ingest/SKILL.md
- weibo-transcribeweibo-transcribe/SKILL.md
- xiaohongshu-ingestxiaohongshu-ingest/SKILL.md
- x-ingestx-ingest/SKILL.md
- youtube-transcribeyoutube-transcribe/SKILL.md
- zhihu-transcribezhihu-transcribe/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

