📹 短视频文案智能提取 · 工业化 Pro 版 V2.2.1
> 可执行代码技能 — 真实 Python 脚本,不是规则文档
> V2.2 新增:✨ dousnap.com(抖虫 DouChong)前置一步到位——描述/转录/媒体全拿到,无需本地 Whisper
> 全平台覆盖:抖音 / 小红书 / 快手 / B站 / TikTok / YouTube
一、技能定位
真实可运行的短视频文案分析工具,包含:
- 🆕 DouSnap.com 前置一步到位(V2.2)— 一次请求拿到标题/描述/转录/无水印视频/音频/封面/图集
- 🔗 HelloTik.app 抽音回退(V2.1)— 无水印直链 + 避开反爬
- 🔗 yt-dlp 兜底(V2.0)— 支持 1000+ 平台元数据
- 🎙️ Whisper ASR 兜底(V2.0)— 前两步都失败时本地转文字
- 📊 文本分析引擎(结构/评分/类型/合规)
- ✂️ 智能改写引擎(朗读优化/三级精简)
- 📤 多格式输出(MD/JSON/CSV/纯文本)
🔥 V2.2 完整数据流
用户粘贴链接(抖音/小红书/快手/B站/TikTok/YouTube)
↓
【Step 1】DouSnap.com 前置解析 ✨(推荐 --cdp 走真实浏览器)
↓
┌───返回───┐
│ 标题 │
│ 描述文案 │ ← 平台原始文案(含 # 标签)
│ 转录文案 │ ← AI ASR 自动转好
│ 视频直链 │ ← 无水印
│ 音频直链 │
│ 封面/图集 │
└──────────┘
↓
【Step 2】文案选取优先级:
dousnap transcript ≥10字 → 用这个
否则 description ≥20字 → 用这个
否则回退到 Whisper 本地转录
↓
【Step 3】7 步分析(类型/结构/评分/合规/优化/精简/时长)
↓
【Step 4】格式化输出(MD/JSON/CSV/纯文本)
性能对比:
| 方案 | 15 秒视频耗时 |
|------|---------------|
| V2.1(hellotik + Whisper) | 40-90 秒 |
| V2.2(dousnap 一步到位) | 10-30 秒 ⚡ |
二、依赖安装
# 必需
pip install playwright
playwright install chromium # 首次需下载浏览器
# 强烈推荐(yt-dlp 作为兜底)
pip install yt-dlp
# 可选(Whisper 只在前两级都失败时使用)
pip install openai-whisper
# 需要 ffmpeg(本地转录才需要)
apt install ffmpeg
三、使用方法
3.1 单链接提取(推荐加 --cdp 走真实浏览器)
python3 extract.py https://v.douyin.com/xxx --cdp http://127.0.0.1:9222
> ⚠️ 重要:Playwright 独立启动的 chromium 会被 dousnap 反爬识别,导致 description/transcript 抓不到。
> 推荐搭配 OpenClaw 的 browser 服务(默认已在 127.0.0.1:9222 暴露 CDP),或本地启动 Chrome:
> bash
> chrome --remote-debugging-port=9222
>
3.2 JSON 输出
python3 extract.py https://v.douyin.com/xxx --output json --cdp http://127.0.0.1:9222
3.3 CSV 输出
python3 extract.py https://v.douyin.com/xxx --output csv --cdp http://127.0.0.1:9222
3.4 纯文本
python3 extract.py https://v.douyin.com/xxx --output plaintext --cdp http://127.0.0.1:9222
3.5 批量处理
python3 extract.py --batch urls.txt --cdp http://127.0.0.1:9222
3.6 对标分析
python3 extract.py --benchmark https://v.douyin.com/a https://v.douyin.com/b \
--cdp http://127.0.0.1:9222
3.7 单独跑 dousnap(不做后续分析)
python3 dousnap_extract.py https://v.douyin.com/xxx --cdp http://127.0.0.1:9222 --json
3.8 禁用 dousnap(回退到 hellotik/yt-dlp)
python3 extract.py https://v.douyin.com/xxx --no-dousnap
3.9 转录等待超时(长视频调大)
python3 extract.py https://v.douyin.com/xxx --cdp http://127.0.0.1:9222 \
--transcript-timeout 300 # 5分钟
3.10 详细日志(调试)
python3 extract.py https://v.douyin.com/xxx --cdp http://127.0.0.1:9222 --verbose
四、代码架构
short-video-copy-extract/
├── extract.py # 主流程(三级前置 + 分析引擎)
├── dousnap_extract.py # ✨ V2.2 新增:dousnap.com 驱动器
├── hellotik_extract.py # V2.1:hellotik.app 驱动器
└── SKILL.md
extract.py 内部结构:
├── 平台识别引擎
├── 三级视频元数据提取
│ ├── fetch_via_dousnap_preflight() ✨ 首选
│ ├── fetch_via_hellotik_preflight() 回退1
│ └── yt-dlp 兜底
├── Whisper ASR(前两级失败时)
├── 文本分析引擎
│ ├── detect_content_type() - 6 大类型识别
│ ├── parse_structure() - 五段式拆解
│ ├── check_compliance() - A/B/C 三级检测
│ └── calculate_score() - 四维评分
├── 智能改写引擎
│ ├── optimize_reading() - 朗读优化
│ ├── compress_to_length() - 精简压缩
│ └── calculate_duration() - 平台适配时长
└── 输出格式化(MD/JSON/CSV/TXT/benchmark)
五、⚠️ 生产级红线(必读)
5.1 dousnap 反爬处理
问题:直接用 Playwright 无头浏览器打开 dousnap.com,description 和 transcript 区块渲染不出(后端识别为爬虫)。
解决方案:
1. 强烈推荐:加 --cdp http://127.0.0.1:9222 走真实浏览器(OpenClaw 默认已启动 CDP)
2. 备选:本地启动 Chrome 时加 --remote-debugging-port=9222
3. 无 CDP 时:脚本会自动加 stealth patch,但不保证 100% 通过,可能只拿到媒体链接
5.2 转录内容属性
注意:dousnap 的 transcript 是音频 ASR 结果,可能包含:
- 视频旁白/口播(正常场景)
- BGM 歌词(无口播的视频,例如古风、纯画面视频)
- 环境音字幕(少见)
判断技巧:如果 transcript 与 description 语义完全不相关,很可能是 BGM 歌词。
5.3 后端加密
dousnap 后端 API(/prod-api/transcript/queryTask)返回加密数据,无法直接调用。必须走浏览器 DOM(脚本已处理)。
5.4 超时策略
- 短视频(<30s):默认 120s 超时够用
- 长视频(>2min):建议
--transcript-timeout 300 - 极长(>10min):网站可能不支持
六、核心算法
6.1 爆款度评分(0-100 分)
四维加权计算:
total = hook * 0.30 + density * 0.25 + emotion * 0.20 + cta * 0.25
钩子力度(score_hook):
- 基础分 40 + 钩子信号词 +8/个 + 长度 8-25 字 +15 + 疑问/惊叹 +10
信息密度(score_density):
- 基础分 50 + 字/秒 ≥ 4.5 +20 + 干货词 +3/次
情绪张力(score_emotion):
- 基础分 40 + 情绪词 +5/次 + 感叹号 +5/个
CTA 强度(score_cta):
- 基础分 50 + CTA 信号词 +10/个 + 行动词 +8/个
6.2 五段式结构
- 钩子(第一句)
- 铺垫(第二句)
- 核心(中间正文)
- 转折(含转折词的中间句)
- CTA(含 CTA 词的末句)
6.3 精简压缩
重要性打分选取:钩子 +100 / 转折 +30 / CTA +50 / 干货词 +20 → 按分数从高到低选取到目标字数 → 按原序输出。
七、输出示例(实测)
输入链接:https://v.douyin.com/RnFVe8onfwc/(何以华夏品牌总部)
【标题】
(暂无标题)
【简介】
原来古人真不是乱画,老祖宗真的是写实派,这幅元代的怪鸟,现实中竟真的存在!
#老祖宗的智慧#古画#黄腹角雉#何以华夏#罕见鸟种
【文案类型】
综合类
【口播文案 · 原版提取】
为你吹不断,千里挑灯看剑,剑舞阑珊。台下一曲离乱,出口声四方,寒白衣辞君,剑雪落凝寒霜。
(⚠️ 注:本条视频无旁白,转录内容为 BGM 歌词)
【爆款度评分】
🔥 综合评分:49 分 · 等级:A 待优化
├─ 钩子力度:55/100
├─ 信息密度:50/100
├─ 情绪张力:40/100
└─ CTA 强度:50/100
【平台适配时长】
识别平台:douyin(语速 4.5 字/秒)
总字数:44 字
建议口播时长:约 10 秒
八、平台语速表
| 平台 | 语速(字/秒) | dousnap 支持 |
|---|---|---|
| 抖音 | 4.5 | ✅ |
| 快手 | 4.2 | ✅ |
| 小红书 | 3.8 | ✅ |
| B站 | 4.3 | ✅ |
| TikTok | 4.5 | ✅ |
| YouTube Shorts | 4.5 | ✅ |
| 视频号 | 4.0 | ❌(yt-dlp 兜底) |
九、合规词库
A 级:国家级、世界级、最高级、顶级、极品、全网最低、最低价、史上最、绝对、根治、特效、100%...
B 级:最、第一、唯一、首个、首款、顶尖、领先、王牌、冠军...
C 级:微信、加我、私信、扫码、免费送、白嫖、秒杀、抢购...
十、📚 典型案例(实测库)
本技能包附带 examples/ 目录,收录真实抖音链接的完整拆解报告,推荐新上手先看。
| # | 案例 | 视频类型 | 核心亮点 | 文件 |
|---|---|---|---|---|
| 01 | 何以华夏 · 元代古画 | 文化科普 / BGM场景 | ⚠️ 无口播 → 用 description;BGM/口播判定规则 | examples/case-01-hyhx-guhua.md |
| 02 | 小商拍车 · 奥迪 E7X 开箱 | 汽车开箱种草 | ✅ 完整口播 dousnap 全转录;广告法合规勘误;三大爆款技巧 | examples/case-02-audi-e7x-unboxing.md |
> 💡 每个案例都包含:原始转录 / ASR勘误 / 五段式拆解 / 四维评分 / 广告法风险 / 可复用公式 / 仿写模板 / CLI 复现命令,可直接照拆。
十一、Python API 集成
from extract import extract_single
result = extract_single(
"https://v.douyin.com/xxx",
cdp_endpoint="http://127.0.0.1:9222", # 推荐
transcript_timeout=120,
verbose=True,
)
# 访问字段
print(result.score.total) # 综合评分
print(result.structure.hook) # 钩子
print(result.compressed_30s) # 30秒精简版
print(result.compliance.a_level) # A 级违禁词
# 额外从 info 拿到 dousnap 附加数据
print(getattr(result.info, "_video_direct_url", "")) # 无水印视频
print(getattr(result.info, "_audio_direct_url", "")) # 音频直链
print(getattr(result.info, "_cover_url", "")) # 封面
print(getattr(result.info, "_images", [])) # 图集
或者只用 dousnap:
from dousnap_extract import fetch_via_dousnap
r = fetch_via_dousnap(
"https://v.douyin.com/xxx",
cdp_endpoint="http://127.0.0.1:9222",
verbose=True,
)
# r = {"success": True, "title": ..., "description": ..., "transcript": ..., ...}
十二、异常处理
| 场景 | 处理 |
|---|---|
| dousnap 反爬 | 走 CDP 真实浏览器;否则降级 hellotik/yt-dlp |
| dousnap 未装 playwright | 降级 hellotik → yt-dlp |
| 抖音链接 hellotik 失败 | 降级 yt-dlp |
| 视频私密/失效 | 全链路返回明确错误信息 |
| 无 description 无 transcript | 触发 Whisper 本地转录(如已装) |
| 网络超时 | 分层超时保护(元数据 30s / 转录 120s) |
十三、四大红线
- 绝对零脑补:无 description 无 transcript 无 ASR 时返回空文案,不编造
- 三版语义强一致:原版/朗读版/精简版核心信息 100% 对齐
- 优化边界严格:只做断句/通顺/去水/浓缩,不新增卖点
- BGM/口播区分提醒:转录内容若明显与 description 不同,需在报告备注
十四、性能参考
| 场景 | 耗时(有 CDP) |
|---|---|
| dousnap 单链接(15s 短视频) | 12-25s |
| dousnap 单链接(60s 视频) | 30-60s |
| dousnap 单链接(3min 视频) | 90-150s |
| Whisper base 兜底转录 | 15-30s |
| 文本分析(评分+精简) | < 100ms |
| 批量 10 个抖音(有 CDP) | 3-6 分钟 |
十五、版本历史
| 版本 | 日期 | 更新内容 |
|---|---|---|
| 2.2.1 | 2026-07-04 | 新增 examples/ 实测案例库:何以华夏元代古画(BGM场景)+ 小商拍车奥迪 E7X(完整口播 + 广告法合规勘误);SKILL.md 接入典型案例章 |
| 2.2.0 | 2026-07-04 | ✨ dousnap.com 前置一步到位:新增 dousnap_extract.py,通过浏览器驱动 dousnap.com(抖虫 DouChong)直接拿到标题/描述/转录/无水印视频/音频/封面/图集;跳过本地 Whisper,速度提升 3-5 倍;全平台覆盖(抖音/小红书/快手/B站/TikTok/YouTube);支持 --cdp 连接现有 Chrome 绕过反爬;分级降级 dousnap → hellotik → yt-dlp → Whisper |
| 2.1.0 | 2026-07-03 | 抽音链接前置解析:hellotik.app 无水印 + 避开反爬 |
| 2.0.0 | 2026-07-03 | 代码化重写:yt-dlp+Whisper、四维评分、五段式拆解、批量+对标、多格式输出 |
| 1.2.0 | 2026-07-03 | 修复重复章节、统一示例 |
| 1.0.0 | 2026-07-01 | 首发标准化文档版 |
本技能包由团子 🦐 创建,知灵技舍持续维护。
Short Video Copy Extract Pro v2.2.1 | 2026-07-04 | DouSnap 一步到位 · 典型案例库 📹