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.
git clone --depth 1 https://github.com/ZJU-REAL/Easelnpx agentmods add skills/zju-real/easel/skill-kuaishou-uploadWrote 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.
[](https://agentmods.dev/skills/zju-real/easel/skill-kuaishou-upload)<a href="https://agentmods.dev/skills/zju-real/easel/skill-kuaishou-upload"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-kuaishou-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.
<a href="https://agentmods.dev/skills/zju-real/easel/skill-kuaishou-upload"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-kuaishou-upload.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00074 | $0.01354 |
| Opus 5 | $0.00037 | $0.00677 |
| Sonnet 5 | $0.00015 | $0.00271 |
| Haiku 4.5 | $0.00007 | $0.00135 |
Grade A, and why
skill-kuaishou-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 8d 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.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
快手视频发布
基于通用浏览器发布框架
../../shared/scripts/web_publisher.py(--platform kuaishou)。 网页自动化发布——需真实浏览器 + 已登录快手创作者中心。
⚠️ 环境依赖(同 skill-xhs-publisher 定位)
pip install playwright+playwright install chromium- 首次
login扫码/登录快手创作者中心,登录态持久化到~/.easel-browser-profiles/KuaishouProfile后复用- 远程/headless 环境用
login-qr --platform kuaishou(抠二维码成图轮询),或走 Web「账号」页扫码
- 远程/headless 环境用
- 选择器时效:快手网页改版频繁,内置选择器为最佳努力,首次发布务必先
plan预览 +--headed目视校验,失效时更新web_publisher.py中 kuaishou 配置。
无浏览器环境可用 platforms / plan / check。
执行
脚本:../../shared/scripts/web_publisher.py(各子命令 -h)。
python <ROOT>/skills/shared/scripts/web_publisher.py check
python <ROOT>/skills/shared/scripts/web_publisher.py login --platform kuaishou
python <ROOT>/skills/shared/scripts/web_publisher.py plan --platform kuaishou \
--media out.mp4 --title "标题" --tags "#恐怖故事 #都市怪谈 #灵异事件"
# 有头执行,便于首次核对选择器:
python <ROOT>/skills/shared/scripts/web_publisher.py publish --platform kuaishou \
--media out.mp4 --title "标题" --tags "#话题1 #话题2 #话题3 #话题4" --exec --headed
登录态:确认「真能发」而不只是「已登录」
快手创作者中心的「外壳」登录态比发布/上传子系统的授权活得久——外壳显示已登录、昵称头像都在,却可能已经发不出去(上传 token 过期)。为此 whoami 已内置发布子系统鉴权探针(login_probe),真校验能否发布而不只看页面外壳,账号页据此自愈假阳性。
- 仍出现「显示已登录、发布却失败」= 发布态过期:去 Web「账号」页重新扫码,或清空
~/.easel-browser-profiles/KuaishouProfile后重跑login-qr。 - 快手发布 token 偏短命,需要比别的平台更勤地重新扫码,属正常现象。
Profile 感知
- 有 Profile:标题/话题贴合
style.md与快手生态(生活化、接地气);竖版 9:16。 - 无 Profile:按快手通用规范(竖版、话题#、口语化描述)。
规则(含 2026-08 真机校准)
- 快手以竖版 9:16 为主,横版素材先用 video-reframe 转竖版;发布走视频流程,只收视频。
- 话题标签最多 4 个:超过报「话题标签数量超过上限:4」,
--tags控制在 4 个以内。 - 发布前先
plan预览、--headed目视确认;确认无误再无头批量。 - 发布按钮靠 JS 派发点击(脚本已用
js_click):底部提交按钮 class 带哈希后缀(如_button-primary_xxx)、每次改版都变,纯 CSS:has-text('发布')在 headless 下命中不稳; 脚本改为定位「可见 +innerText=='发布'+ class 含button-primary」的元素派发点击。 注意别误点右上角下拉菜单里的「发布作品」(那不是提交按钮)。 - 成功判定:点击后 URL 离开
publish/video(跳内容管理页)即视为成功 (publish_success: url_not_contains publish/video);视频初始「审核中」,稍后过审公开。 - 选择器/流程失效不要硬跑——先看截图定位阶段,再更新配置或提示用户平台已改版。
- 登录态与 Cookie 属敏感信息,妥善保存、不外泄。
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.
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.
- 8d ago First seen · 77 lines · 74 tokens per session scan A 9ee2372a34da
skill-kuaishou-upload is a skill published in the GitHub repository ZJU-REAL/Easel (794 stars, last pushed yesterday), licensed Apache-2.0. It adds 74 tokens to every session and 1,354 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-09-03.
Other skills, from other repositories
feature-demo-recording
Record a demo video of a web feature from a real browser. Two modes -- a NARRATED film where measured voiceover drives the timeline (designed slides, subtitles, punch-in camera, rendered from an HTML timeline), and a SILENT evidence clip for a PR or a QA pass. Use when the user asks to record a video, demo, or screen…
playwright-recording
Record browser interactions as video using Playwright. Use for capturing demo videos, app walkthroughs, and UI flows for Remotion videos. Triggers include recording a demo, capturing browser video, screen recording a website, or creating walkthrough footage.
website-to-video
Capture a general website/URL and turn it into a HyperFrames video (site tour, showcase, or social clip from the site's own visuals). Uses headless Chrome screenshots + brand assets. Use when intent is general — portfolio/blog/landing-page showcase or social clip from the site. NOT for: product/SaaS launch or promo (→…
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
node-inspect-debugger
Debug Node.js via --inspect + Chrome DevTools Protocol.