发布抖音图文或视频
SkillMediaFill 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.
No other account needed.
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" <子命令> 完成抖音页面操作。可以使用普通图片、视频工具准备和肉眼检查素材,但不要换用其他发布实现。
共同强制流程
- 确认目标账号并运行
check-login。 - 检查全部素材、标题和文案,并确定本次发布类型是图文还是视频。
- 使用对应的填表命令,人工查看页面,再使用对应的只读校验命令。
- 用户没有预先明确授权发布时,展示最终内容并取得授权。
- 只有校验返回
success: true、state: ready后,才执行对应的click-publish* --confirm。 - 根据
published与status判断结果;点击后未确认时绝不自动重试。
不要把图文校验器用于视频页,也不要把视频校验器用于图文页。任何 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: true、status: 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: true、status: publish_confirmed:页面已给出明确成功信号。published: false、status: publish_clicked_unconfirmed:已经点击,但成功状态未知。不要自动重试;先到作品管理核对,避免重复发布。status: publish_outcome_unknown、clicked: null、retry_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