发布抖音图文或视频
只使用 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 发布承诺。