skill-douyin-upload

skill-douyin-upload is a skill for Claude Code, Codex from ZJU-REAL/Easel. It costs 110 tokens per session (1,673 once invoked), scanned A, original, Apache-2.0.

A browser-automation skill for publishing videos or image posts to Douyin, a Chinese social-media platform, through its creator website.

In plain words
What is it for?
It helps scan in to log in, prepare and publish videos or image posts, add hashtags, choose an AI-recommended cover for videos, and handle possible SMS checks.
Why use it?
It organizes login, media upload, pre-publication checks, and confirmation of successful publishing in one workflow.

Skill for Claude CodeCodex

Which agent this was written for is unclear — built for openclaw. Also seen: mentions AGENTS.md; built for openclaw.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python skills/shared/scripts/douyin_publish.py publish-video --exec \.

Good fit It helps scan in to log in, prepare and publish videos or image posts, add hashtags, choose an AI-recommended cover for videos, and handle possible SMS checks.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/ZJU-REAL/Easel
agentmods
npx agentmods add skills/zju-real/easel/skill-douyin-upload

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 skill-douyin-upload

README.md
[![agentmods](https://agentmods.dev/badge/skills/zju-real/easel/skill-douyin-upload/github.svg)](https://agentmods.dev/skills/zju-real/easel/skill-douyin-upload)
Your own site
<a href="https://agentmods.dev/skills/zju-real/easel/skill-douyin-upload"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-douyin-upload/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 skill-douyin-upload

Your own site · 80×15
<a href="https://agentmods.dev/skills/zju-real/easel/skill-douyin-upload"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-douyin-upload.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 110 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,673 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.00110 $0.01673
Opus 5 $0.00055 $0.00837
Sonnet 5 $0.00022 $0.00335
Haiku 4.5 $0.00011 $0.00167

Measured 11d ago against content hash 559a486f41e2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

skill-douyin-upload 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 11d 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/openclaw/skill-douyin-upload/SKILL.md · 106 lines

How it starts

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

抖音发布助手(douyin-upload)

在用户确认后,调用 douyin_publish.py 完成视频/图文发布

运行方式(Playwright,headless 可用)

统一走 ../../shared/scripts/douyin_publish.py(CWD=项目根)。Playwright + 持久化登录态驱动 抖音创作者后台,headless 即可发布——替代了旧的 CDP/puppeteer/MCP Node 死栈(需真实 Chrome, 本环境跑不了,已删除)。

依赖 说明
playwright + chromium 本环境已装(douyin_publish.py check 验证)
已扫码登录 login 抠二维码成 PNG(默认 outputs/_login/douyin.png,Web「账号」页可扫)→ cookie 持久化到 ~/.easel-browser-profiles/DouyinProfile
干净网络 IP 抖音对机房/代理 IP 更易触发风控短信墙(登录与发布都可能弹)。短信墙可过——脚本支持验证码回填(见「短信验证码处理」),无需家宽 IP;仍建议尽量用干净 IP 降低触发频率

能力范围

  • 现做:视频发布、图文发布、扫码登录、发布前预检(plan)。
  • 话题:写进作品简介的 #话题(抖音自动联想成话题)。
  • 视频发布含:上传等转码(≤5min)+ 选 AI 推荐封面。

风险提示

抖音自动化发布存在被平台风控/限流风险。默认提醒用测试号、小流量、人工复核。脚本已内置反检测 (--disable-blink-features=AutomationControlled + 逐字符输入 + zh-CN);风险不可完全消除。

执行流程

check(环境就绪?)
  → 未登录 → login(抠二维码,Web 账号页扫 或 CLI 扫)
  → plan(dry-run 预检:标题长度/媒体路径/步骤)— 给用户确认最终标题、简介、媒体
  → 发布前人设检查(见下)
  → publish / publish-video --exec(首次建议 --headed 校验选择器,OK 后 headless 复跑)
  → 【若弹短信墙】问用户验证码 → 回填 → 脚本自动过墙(见「短信验证码处理」)
  → 成功校验(脚本内置:发布后 toast「发布成功」)
  → 发布后留痕(见下)

短信验证码处理(对话页发布必读)

抖音发布点「发布」后可能弹风控短信墙(提示『接收短信验证码』)。脚本已内置完整过墙能力(_handle_publish_sms:下发验证码 → 轮询码文件 → 填码提交,最多等 300s,可多次重输),但对话页里 agent 必须主动把验证码递进去——否则脚本会空等 300s 超时失败。

对话页正确姿势(后台跑 + 轮询状态 + 问用户 + 写码文件)

  1. 后台启动发布(务必带 --status-file--sms-code-file,路径用 outputs/_login/ 下):
    python skills/shared/scripts/douyin_publish.py publish-video --exec \
      --title "标题" --content "简介" --video /abs/v.mp4 --tags "旅行,攻略" \
      --status-file outputs/_login/douyin.publish.json \
      --sms-code-file outputs/_login/douyin.code
    
  2. 轮询 outputs/_login/douyin.publish.json(JSON,字段 statestarting→可能 sms_requiredverifyingsuccess/error)。
  3. 读到 state=="sms_required":把该文件里的 message(含发码手机尾号)转达用户,在对话里向用户要验证码
  4. 拿到验证码后,把纯数字写进码文件(一次性消费,脚本读走即删):
    printf '%s' "123456" > outputs/_login/douyin.code
    
  5. 继续轮询直到 success/error。码错会退回 sms_required,可再要一次重写。

Read the full file on GitHub · 106 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 11d ago First seen · 106 lines · 110 tokens per session scan A 559a486f41e2

Subscribe to this mod's changes

skill-douyin-upload is a skill published in the GitHub repository ZJU-REAL/Easel (794 stars, last pushed yesterday), licensed Apache-2.0. It adds 110 tokens to every session and 1,673 once invoked, about $0.0006 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.