发布抖音图文或视频

SkillMedia

Fill in and publish image-text or video posts in the Douyin Creator Center, including local asset upload, video cover settings, music selection, pre-publish validation, and explicit confirmation clicks. Use when the user asks to publish a Douyin image-text post/video or review pending content; not f

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 发布抖音图文或视频 skill

What this skill tells your AI

The instructions your AI receives, as published by zjay26/douyin-skills in skills/douyin-publish/SKILL.md and read by ahel’s review.

只使用 python "{baseDir}/../../scripts/cli.py" <子命令> 完成抖音页面操作。可以使用普通图片、视频工具准备和肉眼检查素材,但不要换用其他发布实现。

共同强制流程

  1. 确认目标账号并运行 check-login
  2. 检查全部素材、标题和文案,并确定本次发布类型是图文还是视频。
  3. 使用对应的填表命令,人工查看页面,再使用对应的只读校验命令。
  4. 用户没有预先明确授权发布时,展示最终内容并取得授权。
  5. 只有校验返回 success: truestate: ready 后,才执行对应的 click-publish* --confirm
  6. 根据 publishedstatus 判断结果;点击后未确认时绝不自动重试。

不要把图文校验器用于视频页,也不要把视频校验器用于图文页。任何 wrong_page、验证码/风控、字段不一致、上传未完成或封面缺失都必须先解决。

图文发布

图片必须是存在的绝对路径,格式为 JPG、JPEG、PNG 或 WebP。标题、正文和至少一张图片都不能为空;正文先写入 UTF-8 文本文件。

python "{baseDir}/../../scripts/cli.py" fill-publish-image \
  --title "作品标题" \
  --desc-file "/absolute/path/desc.txt" \
  --images "/absolute/path/01.jpg" "/absolute/path/02.jpg"

只有 success: truestatus: filled 且页面中的标题/正文与请求值完全一致时才继续。然后选择音乐:

python "{baseDir}/../../scripts/cli.py" select-music --names "目标音乐1" "目标音乐2"

检查图片数量、裁切、标题、正文和音乐后运行:

python "{baseDir}/../../scripts/cli.py" validate-publish

用户明确要求热点时才加入 --require-topic。最终发布命令为:

python "{baseDir}/../../scripts/cli.py" click-publish --confirm

视频发布

  • 视频必须是存在的绝对路径。支持 AVI、FLV、M4V、MKV、MOV、MP4、MPEG4、MPG、TS、WEBM、WMV。
  • 标题和作品简介不能为空;作品简介先写入 UTF-8 文本文件。
  • 推荐提供 JPG、JPEG、PNG 或 WebP 自定义封面。发布前必须看到至少一个已设置封面,不能把“AI 封面生成中”当成封面已完成。
  • 页面常驻提示里可能出现“上传中”;只有远端视频预览或明确的“重新上传”控件,且没有真实进度条/“上传失败”,才算视频上传完成。

一次上传、填写并设置封面:

python "{baseDir}/../../scripts/cli.py" fill-publish-video \
  --video "/absolute/path/video.mp4" \
  --cover "/absolute/path/cover.jpg" \
  --title "作品标题" \
  --desc-file "/absolute/path/desc.txt"

如果没有在填表时传 --cover,命令可能返回 status: filled_needs_cover。准备好封面后,在当前视频发布页执行:

python "{baseDir}/../../scripts/cli.py" set-video-cover \
  --cover "/absolute/path/cover.jpg"

人工检查视频预览、标题、作品简介、竖/横封面和可见性设置,再运行:

python "{baseDir}/../../scripts/cli.py" validate-publish-video

用户明确要求热点时才加入 --require-topic。任何 errors 都必须先解决。最终发布命令为:

python "{baseDir}/../../scripts/cli.py" click-publish-video --confirm

结果解释

  • published: truestatus: publish_confirmed:页面已给出明确成功信号。
  • published: falsestatus: publish_clicked_unconfirmed:已经点击,但成功状态未知。不要自动重试;先到作品管理核对,避免重复发布。
  • status: publish_outcome_unknownclicked: nullretry_safe: false:指令期间异常,是否点击未知;先去作品管理核对,禁止自动重试。
  • success: false:先检查上述状态和 retry_safe;只有确认发布前校验失败且未点击时,才按 validation.errors 修复。

会话丢失或页面已关闭时,后续发布步骤不会自动选择另一个标签页。先用 browser-status --include-tabs 在本地确认目标,再通过全局 --target-id 指定现有表单,或重新准备内容。

风控与边界

  • 优先复用已有的本地 Chrome 调试实例;只有 JSON 明确返回 needs_user_verification: true 才停下请用户处理验证码或身份验证。
  • 不尝试绕过验证码、风控或平台限制。
  • 不支持一键跳过复核、草稿管理、定时发布、自动远程素材下载或远程 Chrome 发布承诺。

Signals

GitHub stars
54
Forks
5
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
douyin-publish
Source
github.com/zjay26/douyin-skills