SHILIU · 创作资源
TikTok视频下载与语音转录 · 创作技能
把TikTok公开视频链接经yt-dlp下载音频、用SenseVoice-Small转录,并生成带来源frontmatter的Markdown文本。适用于个人学习与素材整理;需自备Python、ffmpeg、yt-dlp与模型下载环境,不处理私密账号内容,不保证绕过地区限制。
这个技能解决什么问题
把TikTok公开视频链接经yt-dlp下载音频、用SenseVoice-Small转录,并生成带来源frontmatter的Markdown文本。适用于个人学习与素材整理;需自备Python、ffmpeg、yt-dlp与模型下载环境,不处理私密账号内容,不保证绕过地区限制。
适用任务
将用户提供的TikTok公开视频链接转为可编辑的文字稿Markdown文件
需要的输入
TikTok完整链接或vm/vt短链;本机Python 3.9+、ffmpeg、yt-dlp、funasr/modelscope/torch/torchaudio;可访问模型下载源的网络;输出目录(可选)
交付内容
一个带frontmatter(来源链接、作者、语言)的Markdown文件,正文为转录文本;终端保留下载与转录日志
任务示例
请用 tiktok-transcribe 把这条视频转成文字稿:https://vm.tiktok.com/示例短链 ,输出到 ./output 目录。
输出示例
示意(非真实结果):output/<视频ID>.md,frontmatter含 source_url、author、language 字段,正文为分段转录文本;若下载失败则输出错误说明而非空文件。
来源与使用
作者 chubbyguan;许可 MIT。已核对来源与包结构,未据此宣称完成运行实测。
机器可读详情 · 读取 SKILL.md · 下载完整技能包
技能说明全文
---
name: tiktok-transcribe
description: >
TikTok 视频 → 下载 → 转录 → 存为 Markdown。
支持 vm.tiktok.com / vt.tiktok.com 短链和完整链接,无需登录。
metadata:
category: "media"
triggers: "[\"用户发送 TikTok 视频链接\", \"把这个 TikTok 转成文字\", \"帮我转录这个 TikTok\"]"
version: "1.0.0"
tags: "[media, video, transcription, tiktok]"
---
# TikTok 视频转录 Skill
将 TikTok 视频下载音频,用 SenseVoice-Small 转录为文字,存为带 frontmatter 的 Markdown 文件。内容中英混杂时自动检测语言。
## 环境要求
```bash
# 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
```
## 使用方法
```bash
# 完整链接
python scripts/transcribe.py "https://www.tiktok.com/@user/video/1234567890"
# 短链(自动跟随跳转)
python scripts/transcribe.py "https://vm.tiktok.com/xxxxx"
python scripts/transcribe.py "https://vt.tiktok.com/xxxxx"
# 指定输出目录
python scripts/transcribe.py "https://vm.tiktok.com/xxxxx" -o ./output
```
## 流程
### Step 1: yt-dlp 下载音频
TikTok 有地区限制,脚本默认加 `--geo-bypass`。短链由 yt-dlp 自动跟随跳转,无需手动处理。
```bash
yt-dlp --extract-audio --audio-format mp3 --audio-quality 128K \
--geo-bypass \
"https://vm.tiktok.com/xxxxx"
```
### Step 2: SenseVoice-Small 转录
```python
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="auto", # TikTok 中英混杂,自动检测
use_itn=True,
batch_size_s=60,
)
```
### Step 3: 生成 Markdown
脚本自动创建带 frontmatter 的 Markdown 文件,包含来源链接、作者、语言和转录文本。
## 已知限制
- **地区限制**:部分地区或网络环境下 TikTok 内容可能无法访问,`--geo-bypass` 可缓解但不保证解决
- **反爬**:频繁请求可能触发限流;脚本内置重试,仍建议控制频率
- **语言混合**:`language=auto` 对中英混杂内容可用,但长英文段落质量不如专用英文模型
- **登录态**:私密账号内容需要登录,当前脚本不携带登录态
- **模型大小**:SenseVoice-Small 首次下载约 893MB
## 致谢
- [yt-dlp/yt-dlp](https://github.com/yt-dlp/yt-dlp) — 视频下载工具
- [FunAudioLLM/SenseVoice](https://github.com/FunAudioLLM/SenseVoice) — 语音识别模型
## ⚖️ 合规声明
仅供**个人学习与研究**使用。请遵守目标平台的服务条款(ToS)与 robots 规则,控制请求频率,不要用于批量抓取、商用爬取或侵犯他人权益的场景。下载内容的版权归原作者所有。
技能是任务材料,不会自动授予账户权限、付费授权或其他系统权限。请让 Agent 按说明核对依赖,再在授权范围内使用。