douyin-publish

douyin-publish is a skill for Claude Code, Codex from zJay26/douyin-skills. It costs 72 tokens per session (1,265 once invoked), scanned A, original, MIT.

A browser workflow for preparing and publishing image posts or videos on Douyin, a Chinese short-video social platform. It uploads local media, fills the post details, checks the page, and publishes only after confirmation.

In plain words
What is it for?
Use it to publish image galleries or videos, set titles and descriptions, choose music, validate the completed form, and confirm publication.
Why use it?
It reduces errors such as using the wrong post type, missing a cover, or publishing mismatched text and media. It also requires explicit authorization before the final publish action.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to publish image galleries or videos, set titles and descriptions, choose music, validate the completed form, and confirm publication.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zjay26/douyin-skills/douyin-publish
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add zJay26/douyin-skills --skill douyin-publish
Clone the repo
git clone --depth 1 https://github.com/zJay26/douyin-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for douyin-publish

README.md
[![agentmods](https://agentmods.dev/badge/skills/zjay26/douyin-skills/douyin-publish/github.svg)](https://agentmods.dev/skills/zjay26/douyin-skills/douyin-publish)
Your own site
<a href="https://agentmods.dev/skills/zjay26/douyin-skills/douyin-publish"><img src="https://agentmods.dev/badge/skills/zjay26/douyin-skills/douyin-publish/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for douyin-publish

Your own site · 80×15
<a href="https://agentmods.dev/skills/zjay26/douyin-skills/douyin-publish"><img src="https://agentmods.dev/badge/skills/zjay26/douyin-skills/douyin-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 72 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,265 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00072 $0.01265
Opus 5 $0.00036 $0.00633
Sonnet 5 $0.00014 $0.00253
Haiku 4.5 $0.00007 $0.00127

Measured 4d ago against content hash 2cc74c6f9043, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

douyin-publish scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/douyin-publish/SKILL.md · 100 lines

How it starts

The opening of the file, as written. The whole thing — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.

发布抖音图文或视频

只使用 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

Read the full file on GitHub · 100 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago Changed · +3 lines 2cc74c6f9043
  2. 12d ago First seen · 97 lines · 72 tokens per session scan A 2e0f8671fb0c

Subscribe to this mod's changes

douyin-publish is a skill published in the GitHub repository zJay26/douyin-skills (53 stars, last pushed 4d ago), licensed MIT. It adds 72 tokens to every session and 1,265 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

owb

Open Web Bridge (OWB) — drive the user's own real browser with the owb command. Read pages behind their existing logins, gather and cross-check information, fill forms, walk multi-step flows, debug their site, audit responsive/accessibility behavior, and capture or reverse-engineer network traffic. Use this whenever…

woniu9524/open-web-bridge · 143 tokens

chrome-agent

Local browser automation with structured, verified outcomes. Use for web navigation, scraping and extraction, form interaction, screenshots and downloads, network or console checks, responsive testing, or page-scoped device emulation.

sderosiaux/chrome-agent · 44 tokens

scrape-structured-data

Get the repeating records off a web page (product grids, search results, job listings, news feeds, tables) as JSON, without writing CSS selectors and without spending a model call to read the HTML. Works on sites with no API, including ones behind a login or bot protection. Runs locally, one binary, no API key. Use…

sderosiaux/chrome-agent · 111 tokens

browser-bridge

Token-efficient Chrome tab inspection, interaction, and patching via local bridge extension (CLI: bbx). Reads live DOM, styles, console, network, and storage from a real Chrome tab with lower token cost than screenshots.

koltyakov/browser-bridge · 49 tokens

rever

Reverse-engineer web APIs by driving a running Rever Browser instance — connect to its published MCP endpoint and use its browser-automation, network-capture, and JS-bundle-analysis tools. Use when the user types /rever, asks to reverse or analyze a website's API, capture or inspect its network traffic, deobfuscate…

greekr4/rever-browser · 82 tokens

unbrowser

Cheap first-pass web discovery without launching Chrome — fetch SSR pages, run bounded JS, find routes/forms/API endpoints, extract structured data, and detect bot-wall or browser-only escalation points.

protostatis/unbrowser · 40 tokens