opencli抖音自动化发布内容

SKILL商业运营
商业运营 未标注权限 许可证不明确
安装这个技能

抖音自动化内容发布。通过 OpenCLI 浏览器控制已登录的 creator.douyin.com,支持发布文章、图文和视频。处理 React 表单、Semi Design 封面上传、短信验证等场景。

一句话选型结论

按资料字段整理

opencli抖音自动化发布内容是商业运营类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类商业运营 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_401e3080/opencli-douyin
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

商业运营
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_401e3080仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791732814
正文体量10.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写运营方案

按目标产出活动方案与执行清单。

分析数据与指标

从报表里找问题、给结论。

整理客户与销售材料

把客户信息与话术整理成可直接用的材料。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在商业运营场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
opencli抖音自动化发布内容当前 未标注权限 未标注 未标注 未标注 有
MX 股票筛选器 联网访问 ClawHub 市场 79.9 万 OpenClaw 有
交易 未标注权限 ClawHub 市场 58.1 万 OpenClaw 有
营销技巧 只读 ClawHub 市场 54.0 万 OpenClaw 有
百灵鸟好 联网访问 GitHub 仓库 52.6 万 Codex、Claude、Cursor 有
股票信息浏览器 接触敏感数据 ClawHub 市场 40.5 万 OpenClaw 有

SKILL.md 全文

10.5 KB
模型实际读到的说明书原文,来自技能仓库

抖音自动化发布

基于 OpenCLI 浏览器自动化,在抖音创作中心发布内容。

环境搭建(首次使用)

1. 安装 Node.js

要求 Node.js >= 21。检查版本:

node --version

2. 安装 OpenCLI

npm install -g @jackwener/opencli

验证安装:

opencli doctor

3. 安装 Claude Code 所需 Skill

本 Skill 依赖 OpenCLI 的配套 Skill,Claude Code 需要它们来理解 opencli browser 命令体系。

必装(核心):

# OpenCLI 主 Skill — 提供 opencli 全部命令知识
npx skills add jackwener/opencli

# OpenCLI 浏览器 Skill — 提供 browser 子命令参考(state/click/fill/upload/eval/wait 等)
npx skills add opencli-browser

推荐安装:

# OpenCLI 适配器开发 Skill — 需要调试/修改适配器时使用
npx skills add opencli-adapter-author

# OpenCLI 自动修复 Skill — 适配器命令失败时自动修复
npx skills add opencli-autofix

# OpenCLI 快速参考 Skill — 所有命令和站点的速查表
npx skills add opencli-usage

验证已安装的 Skill:

npx skills list

4. 安装 Browser Bridge 扩展

在 Chrome/Chromium 中安装 OpenCLI 扩展(Chrome Web Store 搜索 OpenCLI)。

或者手动安装:
1. 从 https://github.com/jackwener/opencli/releases 下载 opencli-extension-v{version}.zip
2. 解压,打开 chrome://extensions,启用开发者模式
3. 点击"加载已解压的扩展程序",选择解压目录

5. 登录抖音创作中心

在已安装扩展的浏览器中打开 https://creator.douyin.com 并登录。

6. 安装 douyin 适配器(可选,提供 opencli douyin 命令)

将适配器文件放入 ~/.opencli/clis/douyin/ 目录:

~/.opencli/clis/douyin/
├── article.js       # 文章发布适配器
├── image-post.js    # 图文发布适配器
├── _shared/
│   ├── creation-id.js
│   └── timing.js

draft.js(视频草稿)已内置在 OpenCLI 中。

7. 关键修复:evaluateWithArgs 问题

OpenCLI 1.7.18 存在一个 bug:多次调用 browser upload / browser fill 时 const 变量重复声明导致 SyntaxError。

找到 OpenCLI 安装目录下的 dist/src/browser/base-page.js(全局安装通常在 {npm 全局目录}/node_modules/@jackwener/opencli/dist/src/browser/base-page.js)。

查看 npm 全局目录:

npm root -g

找到 evaluateWithArgs 方法(约第 76 行),将:

return this.evaluate(`${declarations}\n${js}`);

改为:

return this.evaluate(`(() => {\n${declarations}\nreturn (${js});\n})()`);

支持的内容类型

类型 方式 复杂度
文章 浏览器手动操作 / opencli douyin article 高 — Semi Design 封面上传
图文 浏览器手动操作 / opencli douyin image-post 低 — 标准文件上传
视频 浏览器手动操作 中 — 需等待上传/转码

通用技巧

启动浏览器会话

opencli browser --session dy open "<url>"

如果 URL 含 &,Windows 命令行会将其截断,使用不含查询参数的基础 URL。

关闭弹窗

(function(){
  var t=['我知道了','知道了','关闭','确定'];
  for(var i=0;i<t.length;i++){
    var b=Array.from(document.querySelectorAll('button,[role=button]')).find(function(e){
      return (e.textContent||'').trim()===t[i];
    });
    if(b) b.click();
  }
})()

点击发布按钮

(function(){
  var b=Array.from(document.querySelectorAll('button')).find(function(x){
    var t=(x.textContent||'').trim();
    return t==='发布';
  });
  if(b) b.click();
})()

React 表单填写

抖音创作中心使用 React 17+(fiber 模式),DOM 元素没有 __reactProps$。

文本输入(标题、摘要)

browser fill 可正确处理 React 输入:

opencli browser --session dy fill "input[placeholder*=\"<部分占位符>\"]" "<文本>"

Contenteditable 编辑器(正文)

不要用 \n — 会被当作字面量。用 eval 注入 HTML 段落:

(() => {
  var editor = document.querySelector('[contenteditable="true"][role="textbox"]');
  // 图文用: document.querySelector('[contenteditable="true"]')
  var html = '<p>段落一</p>' + '<p>段落二</p>';
  var desc = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML');
  if (desc && desc.set) {
    desc.set.call(editor, html);
  } else {
    editor.innerHTML = html;
  }
  editor.dispatchEvent(new Event('input', { bubbles: true }));
  editor.dispatchEvent(new Event('change', { bubbles: true }));
})()

验证码输入框(type=number)

browser fill 对此类输入无效,用原生 setter:

var input = document.querySelector('input[type="number"][placeholder="请输入验证码"]');
var setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set;
setter.call(input, '<验证码>');
input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));

图文发布

# 1. 导航
opencli browser --session dy open "https://creator.douyin.com/creator-micro/content/upload"

# 2. 等待并关闭弹窗
opencli browser --session dy wait time 3
opencli browser --session dy eval "弹窗关闭代码"

# 3. 切换到图文 Tab(先用 state 查看索引)
opencli browser --session dy state
opencli browser --session dy click <N>  # "发布图文"

# 4. 上传图片
opencli browser --session dy upload "input[type=file][accept*=image]" "<图片路径>"

# 5. 等待编辑器加载
opencli browser --session dy wait time 4

# 6. 填写标题
opencli browser --session dy fill "input[placeholder*=填写作品标题]" "<标题>"

# 7. 填写正文(用 eval 注入 <p> 标签,见上方)

# 8. 发布
opencli browser --session dy eval "点击发布代码"

# 9. 等待结果
opencli browser --session dy wait time 5

文章发布

# 1. 导航
opencli browser --session dy open "https://creator.douyin.com/creator-micro/content/post/article"

# 2. 等待并关闭弹窗
opencli browser --session dy wait time 3
opencli browser --session dy eval "弹窗关闭代码"

# 3. 填写标题
opencli browser --session dy fill "input[placeholder*=文章标题]" "<标题>"

# 4. 填写正文(用 eval 注入 <p> 标签,见上方)

# 5. 上传封面(见下方封面上传章节)

封面上传

文章页使用 Semi Design 组件,其文件输入通过 document.createElement 创建但不挂载到 DOM。必须用 monkey-patch 拦截。

第 1 步:设置拦截并点击触发按钮

(function(){
  var oc=document.createElement.bind(document);
  var ocl=HTMLInputElement.prototype.click;
  document.createElement=function(t,o){
    var e=oc(t,o);
    if(t.toLowerCase()==='input') window.__ci=e;
    return e;
  };
  HTMLInputElement.prototype.click=function(){
    if(this.type==='file'){
      window.__ft=this;
      this.setAttribute('data-oc-cov','1');
      if(!this.isConnected) (document.querySelector('#root')||document.body).appendChild(this);
      return;
    }
    return ocl.call(this);
  };
  var t=Array.from(document.querySelectorAll('span')).find(function(s){
    return (s.textContent||'').trim()==='点击上传封面图';
  });
  if(t) t.click();
})()

第 2 步:上传文件

opencli browser --session dy upload "input[data-oc-cov=\"1\"]" <封面路径>

第 3 步:触发 change 事件

(()=>{
  var i=document.querySelector('input[data-oc-cov="1"]');
  i.dispatchEvent(new Event('change',{bubbles:true,composed:true}));
  i.dispatchEvent(new Event('input',{bubbles:true,composed:true}));
})()

第 4 步:点击"完成"(必须执行,否则封面不生效)

opencli browser --session dy wait time 3
opencli browser --session dy eval "(function(){var b=Array.from(document.querySelectorAll('button')).find(function(x){return (x.textContent||'').trim()==='完成';});if(b)b.click();})()"

短信验证

发布可能触发短信验证弹窗(显示脱敏手机号 + 验证码输入框 + "获取验证码" + "验证"按钮)。

  1. 点击"获取验证码"发送验证码
  2. 向用户索要验证码
  3. 用原生 setter 填写(browser fill 对 type=number 无效)
  4. 点击"验证"按钮

视频发布

# 1. 导航(默认即视频 Tab)
opencli browser --session dy open "https://creator.douyin.com/creator-micro/content/upload"

# 2. 上传视频
opencli browser --session dy upload "input[type=file][accept*=video]" "<视频路径>"

# 3. 等待处理(视频需要时间)
opencli browser --session dy wait time 15

# 4. 填写标题
opencli browser --session dy fill "input[placeholder*=填写作品标题]" "<标题>"

# 5. 发布(可在上传进行中发布)
opencli browser --session dy eval "点击发布代码"

使用适配器(推荐方式)

如果已安装 douyin 适配器,可以一行命令完成发布:

# 图文发布
opencli douyin image-post "<图片路径>" --title "标题" --caption "正文"

# 文章发布
opencli douyin article --title "标题" --content "正文" --cover "<封面路径>"

# 视频保存草稿
opencli douyin draft "<视频路径>" --title "标题"

适配器文件见环境搭建第 6 步。

故障排查

现象 原因 解决方法
Extension not connected 浏览器扩展未运行 确保 Chrome 已打开且扩展已启用,运行 opencli doctor 检查
正文 \n 显示为字面量 通过 eval 传文本时未用 HTML 用 innerHTML 注入 <p> 标签
browser upload 报 SyntaxError evaluateWithArgs 重复声明 const 应用上述 base-page.js 修复
上传后封面未生效 没有点"完成"按钮 上传后必须点击"完成"
验证码输入 fill 失败 type=number 不支持 fill 用原生 value setter 填写
selector_not_found placeholder 不匹配 用 opencli browser --session dy state 查看当前页面
URL 含 & 被截断 Windows cmd 解析问题 使用不含查询参数的基础 URL
Node API 报错 / 缺少 fetch Node.js 版本过低 Node.js >= 21 是强制要求
Unauthorized 登录态过期 在浏览器中重新登录 creator.douyin.com

常见问题

5 问
答案由本站依据条目字段整理
opencli抖音自动化发布内容怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_401e3080/opencli-douyin。安装方式为未标注。装完刷新技能列表或重开客户端。

opencli抖音自动化发布内容支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

opencli抖音自动化发布内容权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

opencli抖音自动化发布内容收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

opencli抖音自动化发布内容用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。