with one click
douyin-upload
抖音创作者平台视频上传发布。触发条件:用户要求上传视频到抖音、发布抖音视频、自动上传视频到抖音创作者平台
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
抖音创作者平台视频上传发布。触发条件:用户要求上传视频到抖音、发布抖音视频、自动上传视频到抖音创作者平台
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
A curated collection of 2109+ best OpenClaw skills — AI tools, productivity, marketing, frontend, mobile, backend, DevOps and more. Weekly updated by MyClaw.ai — Powered by MyClaw.ai
Complete startup metrics command center — from raw data to investor-ready dashboards. Covers every stage (pre-seed to Series B+), every model (SaaS, marketplace, consumer, hardware), with diagnostic frameworks, benchmark databases, and board-ready reporting.
Analyze blast radius, attack paths, and threat landscape across your AI infrastructure. Use when: "blast radius", "threat intel", "risk score", "attack path", "lateral movement", "context graph", "who can reach what".
AI compliance and policy engine — evaluate scan results against OWASP, NIST, SOC 2, ISO 27001, CMMC, EU AI Act, AISVS v1.0, and related frameworks. Generate SBOMs and compliance reports. Use when: "compliance report", "NIST", "SOC 2", "ISO 27001", "OWASP", "EU AI Act", "AISVS", "generate SBOM", "policy check".
Discover AI agents, MCP servers, and configurations on this machine or environment. Use when: "find agents", "what's configured", "doctor", "what MCP servers", "show me what's installed", "mcp inventory".
Enforce security policies on MCP tool calls and block dangerous operations at runtime. Use when: "block risky calls", "apply policy", "proxy", "runtime protection", "policy enforcement", "intercept MCP calls".
| name | douyin-upload |
| description | 抖音创作者平台视频上传发布。触发条件:用户要求上传视频到抖音、发布抖音视频、自动上传视频到抖音创作者平台 |
使用 OpenClaw Browser 工具自动上传视频到抖音创作者平台。
本 Skill 的使用条件:
主动请求触发:本 Skill 只会在用户主动请求的情况下才会使用,例如:
需要用户主动提供信息:使用本 Skill 时,需要用户主动提供以下信息:
~/Videos/my_video.mp4)强制用户确认:每次发布前,必须向用户展示视频信息并获得明确确认后才能发布,不支持跳过确认。
⚠️ 安全说明:
本 skill 使用独立的命名 profile(douyin-profile),与你的真实 Chrome 浏览器完全隔离。只需在首次使用时登录抖音一次,之后登录态自动复用。AI 不会访问你的真实 Chrome 数据。
配置选项:
profile="douyin-profile" + target="host" - 使用独立的命名 profile,登录态持久化,与 Chrome 隔离(推荐)target="sandbox" - 独立沙盒环境,每次需要重新登录,最安全但不便捷profile="user" - 直接附加到真实 Chrome,会继承所有 cookies 和登录态,不推荐推荐配置:使用 profile="douyin-profile" 配合 target="host"。
browser(action="navigate", target="host", profile="douyin-profile", url="https://creator.douyin.com/creator-micro/content/upload")
如果页面出现弹窗,先关闭:
// 1. 获取当前页面所有可交互元素
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 在返回结果中查找包含或匹配"我知道了"的按钮,拿到其 ref
// 3. 点击该按钮
browser(action="act", target="host", profile="douyin-profile", request={"kind": "click", "ref": "<找到的ref>"})
关键:不要硬编码 ref! 先 snapshot,再从结果中根据文字内容找到对应元素的 ref。
浏览器 tool 只能上传到 /tmp/openclaw/uploads 目录:
mkdir -p /tmp/openclaw/uploads
cp <视频路径> /tmp/openclaw/uploads/
// 1. 获取上传页面的元素列表
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 查找包含或匹配"上传视频"文字的按钮,拿到 ref
// 3. 点击上传按钮
browser(action="act", target="host", profile="douyin-profile", request={"kind": "click", "ref": "<找到的ref>"})
点击上传按钮后会弹出文件选择框:
// 1. 先 snapshot 找到 Choose File 或文件输入/上传框的 ref
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 上传文件
browser(action="upload", target="host", profile="douyin-profile", paths=["/tmp/openclaw/uploads/<文件名>"], ref="<找到的ref>")
页面自动跳转到发布编辑页,显示进度条"0% 文件解析中,请稍等...",等待视频解析完成后继续。
// 1. 获取当前页面元素
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 查找标题输入框(placeholder 包含或匹配"标题"或"输入标题"的输入框)
// 3. 点击输入框并输入标题
browser(action="act", target="host", profile="douyin-profile", request={"kind": "click", "ref": "<找到的ref>"})
browser(action="act", target="host", profile="douyin-profile", request={"kind": "type", "ref": "<找到的ref>", "text": "<用户提供的标题>"})
# 读取已保存的可见范围偏好
cat ~/.openclaw/skills/douyin-auto-publish/config.json
如果 default_visibility 字段已存在,使用保存的值。
如果 default_visibility 字段不存在,向用户询问:
「请选择默认的可见范围:
- 公开:所有用户可见
- 好友可见:仅好友可见
- 仅自己可见:仅自己可见(最安全)
请回复您希望的数字或文字。」
根据用户回复保存偏好:
# 读取现有配置
current=$(cat ~/.openclaw/skills/douyin-auto-publish/config.json)
# 用户选择"公开"
echo $current | jq -s '.[0] * {"default_visibility":"public"}' > ~/.openclaw/skills/douyin-auto-publish/config.json
# 用户选择"好友可见"
echo $current | jq -s '.[0] * {"default_visibility":"friends"}' > ~/.openclaw/skills/douyin-auto-publish/config.json
# 用户选择"仅自己可见"
echo $current | jq -s '.[0] * {"default_visibility":"private"}' > ~/.openclaw/skills/douyin-auto-publish/config.json
如果 jq 不可用,可以使用简单覆盖:
# 用户选择"公开"
echo '{"default_visibility":"public"}' > ~/.openclaw/skills/douyin-auto-publish/config.json
如果用户明确指定了可见范围,优先使用用户指定的值(而不是默认值),本次不修改保存的偏好。
// 1. 获取当前页面元素
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 查找包含或匹配用户指定可见范围(或默认偏好)的单选框
// - public/公开:"公开"
// - friends/好友可见:"好友可见"
// - private/仅自己可见:"仅自己可见"
// 3. 点击选中
browser(action="act", target="host", profile="douyin-profile", request={"kind": "click", "ref": "<找到的ref>"})
每次发布前必须向用户展示视频信息并获得明确确认,不支持跳过确认。
在点击发布之前,必须向用户展示以下信息并获得明确确认:
// 1. 获取当前页面元素(用于后续发布)
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// 2. 向用户确认以下信息:
// - 文件名: <视频文件名>
// - 标题: <用户提供的标题>
// - 可见范围: <公开/仅自己可见/好友可见>
// 示例:「确认发布以下视频?
// 文件名: demo.mp4
// 标题: 我的视频标题
// 可见范围: 公开
// 请回复「是」确认发布,或「取消」中止操作。」
// 3. 只有在用户明确回复"是"、"确认"、"发布"等肯定回复后,才执行发布
// 如果用户回复"取消"或其他否定内容,告知用户发布已取消并停止操作
// 4. 确认后,点击发布按钮
browser(action="act", target="host", profile="douyin-profile", request={"kind": "click", "ref": "<找到的ref>"})
成功标志:页面显示「共 X 个作品」「已发布」状态。
// 1. 打开上传页面
browser(action="navigate", target="host", profile="douyin-profile", url="https://creator.douyin.com/creator-micro/content/upload")
// 2. 关闭弹窗
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找"我知道了"按钮的 ref,然后点击
// 3. 准备视频文件(需在 terminal 执行)
// mkdir -p /tmp/openclaw/uploads && cp <path> /tmp/openclaw/uploads/
// 4. 点击上传按钮
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找"上传视频"按钮的 ref,然后点击
// 5. 上传文件
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找文件输入框的 ref,然后上传
browser(action="upload", target="host", profile="douyin-profile", paths=["/tmp/openclaw/uploads/<文件名>"], ref="<ref>")
// 6. 等待解析后填写标题
sleep 15
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找标题输入框的 ref,然后点击并输入
// 7. 设置可见范围
// → 读取 config.json 检查 default_visibility 是否已设置
// → 如果未设置,向用户询问偏好(公开/好友可见/仅自己可见)并保存
// → 根据用户指定或保存的偏好,找到对应的单选框 ref 并点击
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找对应可见范围选项的 ref,然后点击
// 8. 确认发布
// → 向用户展示:文件名、标题、可见范围
// → 必须等待用户回复"是"后才继续,否则取消发布
// 9. 点击发布
browser(action="snapshot", target="host", profile="douyin-profile", compact=true, depth=2)
// → 从结果中找"发布"按钮的 ref,然后点击
/tmp/openclaw/uploads/ - 浏览器 tool 的限制如果你希望完全隔离登录状态,可以使用 target="sandbox":
// 1. 打开上传页面
browser(action="navigate", target="sandbox", url="https://creator.douyin.com/creator-micro/content/upload")
// 2. 沙盒环境没有登录态,首次使用需要通过页面上的二维码登录抖音账号
// 3. 后续每次使用都需要重新登录
沙盒模式的优点:
沙盒模式的缺点:
Q: 为什么提示需要登录?
A: 首次使用需要在弹出的 douyin-profile 浏览器中登录抖音账号(扫描二维码)。只需登录一次,之后登录态会自动复用。如果想避免登录态持久化,可以使用 target="sandbox" 模式。
Q: douyin-profile 与真实 Chrome 有什么区别? A: douyin-profile 是一个独立的命名浏览器 profile,与你的真实 Chrome 浏览器完全隔离。AI 使用这个独立的 profile 进行操作,不会访问你的真实 Chrome 数据、cookies 或登录态。
Q: 如何使用更安全的沙盒模式?
A: 使用 target="sandbox" 代替 target="host"。沙盒模式会创建独立的浏览器环境,不会访问你的真实 Chrome 数据,但每次都需要重新登录抖音账号。
Q: Element not found 错误? A: 页面可能跳转了,需要重新执行 snapshot 获取最新元素。
Q: 为什么 ref 每次都不一样? A: 抖音页面动态渲染,每次 snapshot 生成的 ref 不同。这是正常现象。