将抖音视频保存至Obsidian笔记,自动转录、AI摘要并结构化写入。触发词:抖音保存到笔记、抖音存obsidian、douyin to obsidian、抖音笔记、保存抖音、记录抖音、抖音内容存档、视频笔记、抖音转笔记。用户发送抖音链接(douyin.com 或 v.do...)时自动触发。
将抖音视频/图文内容自动转录、摘要、结构化后存入 Obsidian。
配置文件: <skill目录>/config.json
json
{
"vault": "你的Obsidian仓库名",
"folder": "抖音笔记",
"groqApiKey": "gsk_xxx"
}
groqApiKey — Groq API Key(免费,用于 Whisper 语音转文字)。获取: https://console.groq.com
读取 <skill目录>/config.json。如果不存在或字段为空,询问用户:
抖音笔记、 Clippings 等)拿到后写入 config.json,后续不再询问。
config.json 中(Whisper 转录)首次使用前检查上述依赖是否就绪。
1a. 打开页面
bash
agent-browser open "<用户发的抖音链接>"
1b. 提取音频 URL 和标题
bash
agent-browser eval 'performance.getEntriesByType("resource").find(e => e.name.includes("media-audio-und-mp4a"))?.name'
agent-browser eval 'document.querySelector("h1")?.textContent?.trim()'
1c. 下载音频流
抖音使用 DASH 分流,视频和音频分开。用 curl 下载(不能用 ffmpeg 直接抓流):
bash
curl -L -H "Referer: https://www.douyin.com/" -o /tmp/douyin_audio_raw.m4a "<audioUrl>"
1d. 转换格式并转录
bash
ffmpeg -y -i /tmp/douyin_audio_raw.m4a -vn -ar 16000 -ac 1 -c:a libmp3lame -q:a 2 /tmp/douyin_audio.mp3
直接调用 Groq Whisper API(不走 transcribe.js,避免脚本内部路径冲突):
bash
GROQ_API_KEY=$(python3 -c "import json; print(json.load(open('<skill目录>/config.json'))['groqApiKey'])")
curl -s https://api.groq.com/openai/v1/audio/transcriptions \
-H "Authorization: Bearer $GROQ_API_KEY" \
-F file="@/tmp/douyin_audio.mp3" \
-F model="whisper-large-v3" \
-F language="zh" \
-F response_format="verbose_json"
1e. 清理
bash
rm -f /tmp/douyin_audio_raw.m4a /tmp/douyin_audio.mp3
agent-browser close
图文帖:无视频/音频时,用 agent-browser get text 提取页面文案作为"转录内容"。
拿到转录文本后,生成:
markdown
---
tags:
- 抖音
- 视频笔记
created: YYYY-MM-DD HH:MM
source: douyin
---
# {视频标题}
> {一句话总结}
## 核心要点
- 要点 1
- 要点 2
## 关键金句
> "金句内容"
## 原始转录
{完整转录文本}
---
**来源**: [{视频标题}]({原始链接})
读取 config.json 获取 vault 和 folder:
bash
obsidian vault="<vault名>" create path="<folder>/抖音-{标题简称}-{YYYYMMDD}.md" content="<组装好的markdown>" silent
文件名规则:标题取前 20 字符,去掉 / \ : * ? " < > |,日期 YYYYMMDD。
bash
obsidian vault="<vault名>" property:set name="tags" value="[抖音,视频笔记]" file="<路径>"
obsidian vault="<vault名>" property:set name="created" value="YYYY-MM-DD HH:MM" file="<路径>"
obsidian vault="<vault名>" property:set name="source" value="douyin" file="<路径>"
✅ 已保存到 Obsidian 📁 位置:{folder}/{文件名} 📝 包含:AI 摘要 + 原始转录 + 来源链接
问题解决config.json 不存在首次使用会自动询问并创建Groq API Key 未配置提示用户在 douyin-transcribe/.env 中配置agent-browser 未安装npm install -g agent-browser音频 URL 为 null等几秒重试;或用户需登录抖音网页版curl 下载的音频无法播放检查 Referer header 是否带上Obsidian 命令失败确认 Obsidian 已打开且仓库名正确