> 收到任意链接 → 自动识别类型 → 完整下载/转录 → 路由入库
| 特征 | 类型 | 走哪条管线 |
|---|---|---|
| ------ | ------ | ----------- |
douyin.com / v.douyin.com | 抖音视频 | video pipeline |
xiaohongshu.com / xhslink.com | 小红书图文或视频 | video(Playwright 截获视频流)或 article(抓取正文)管线 |
bilibili.com / b23.tv | B站视频 | video pipeline |
mp.weixin.qq.com | 公众号文章 | article pipeline |
| 其他网页链接 | 网页文章 | article pipeline |
| 难以判断 | — | 询问用户 |
视频管线(Video Pipeline):
yt-dlp <url> -o video.mp4
# 尝试提取字幕(用于交叉验证)
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --skip-download -o "/tmp/%(id)s" <url>
# 提取音频
ffmpeg -i video.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 audio.wav
# 转文字
whisper audio.wav --model base --language zh -f txt > raw.txt
抖音和小红书反爬严格,无法通过 yt-dlp 直接下载,需用 Playwright(Python)模拟移动端浏览器访问,从页面中提取视频源地址。
步骤(通用,适配抖音和小红书):
wait_until="networkidle" 后再 sleep(5)) 标签提取 src 属性playwm 地址(带水印),替换 playwm/ → play/,去掉 logo_name 参数得无水印地址blob: 地址,需从网络请求中捕获真实 .mp4 地址;也可通过 page.on("response") 监听 xhscdn.com 域的视频请求https://www.douyin.com/https://www.xiaohongshu.com/⚠️ 长视频注意: 超过 15 分钟的视频用 Whisper 转音频时,建议分段处理:
# 切割为 7 分钟一段的 MP3
ffmpeg -i video.mp4 -vn -q:a 2 -ar 16000 -ac 1 -f segment -segment_time 420 -reset_timestamps 1 seg_%03d.mp3
# 逐段转录
whisper seg_000.mp3 --model tiny --language zh -f txt
whisper seg_001.mp3 --model tiny --language zh -f txt
# ... 合并
cat seg_*.txt > full_transcript.txt
# 然后用大模型清洗修正专有名词
分段原因:Whisper 处理长音频时可能因内存不足或线程锁卡死,分段后每段 2-3 分钟即可完成。
所需依赖:Python playwright + google-chrome + ffmpeg(当前环境已安装)
字幕交叉验证规则(重要):
清洗: 调用 DeepSeek V4 API 做最终清洗,合并交叉验证结果
文章管线(Article Pipeline):
requests.get(url) → bs4/readability 提取正文
→ 转为结构化 Markdown
参考 AGENTS.md 中的路由规则(topic → 知识库映射),确认识别后按规则入库。
通过 Skill 同目录下的 config.yaml 配置路由规则,示例:
routing:
rules:
- topics: ["AI工具", "AI编程", "技术教程"]
target: "快速入门/示例/AI知识库/"
fallback: ask
处理完成后输出:
✅ 处理完毕
来源:xxx
类型:抖音视频
时长:9:03
转录字数:3066字
已存入:您的AI知识库(自动识别)
共 2 个版本