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/beat-sync-videoWrote 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/beat-sync-video)<a href="https://agentmods.dev/skills/zju-real/easel/beat-sync-video"><img src="https://agentmods.dev/badge/skills/zju-real/easel/beat-sync-video/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/beat-sync-video"><img src="https://agentmods.dev/badge/skills/zju-real/easel/beat-sync-video.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.00156 | $0.01149 |
| Opus 5 | $0.00078 | $0.00575 |
| Sonnet 5 | $0.00031 | $0.00230 |
| Haiku 4.5 | $0.00016 | $0.00115 |
Grade A, and why
beat-sync-video 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 10d 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.
What it actually says
音乐卡点视频(踩点混剪)
用 librosa 检测背景音乐节拍,让画面在节拍上硬切换,配节拍特效,做"踩点"燃系短视频。 全部走
skills/shared/scripts/beatsync.py,不要手数节拍、手拼滤镜——脚本已做 节拍检测、区间切分、素材循环、音画对齐。
每图固定时长的柔和相册见 slideshow-video;主题→AI 配图配音成片见 auto-short-video。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| 背景音乐 | 是 | 决定卡点的音乐文件(节奏越强效果越好;没给就问) |
| 素材 | 是 | 一组图片和/或短片段(按顺序,循环使用),或一个目录 |
| 画幅 | 是 | 用户或上游任务未明确横版/竖版(或具体分辨率)时,制作前必须追问并等确认;不得按平台、Profile 或默认值静默推断,已明确则不重复问 |
| 切换频率 | 否 | 每几拍切一次(默认每 2 拍) |
| 特效 | 否 | zoom 推进(默认)/ flash 白闪 / none |
输出(outputs/主题名/)
- 卡点成片(
*.mp4) - 报告:卡点段数、总时长、检测到的 BPM、特效
执行步骤
脚本路径(相对项目根):skills/shared/scripts/beatsync.py(build -h / beats -h)。
1.(可选)先看节拍
python skills/shared/scripts/beatsync.py beats --music <音乐>
# 打印 tempo(BPM) 与节拍时间点,用于判断 --every 该设多少
2. 生成卡点视频
python skills/shared/scripts/beatsync.py build \
-i 1.jpg 2.jpg 3.jpg 4.jpg --music <音乐> \
-o outputs/主题名/show.mp4 \
--size 1080x1920 --every 2 --effect zoom
- 素材 = 图片或短片段,数量可少于卡点段数(自动循环复用)。
--every 1每拍都切(快闪,素材要多);--every 4每小节切一次(舒缓)。--effect flash段首白闪更"燃";--effect none干净硬切。--max-duration 15限制成片长度(如做 15s 抖音)。- 也可
--images-dir <目录>批量喂素材(按文件名排序)。
Profile 感知
- 有 Profile:
platforms.md只用于给出画幅建议,仍须用户确认;卡点风格(快闪/舒缓)与特效贴合账号调性 (潮流/运动账号偏快闪 flash,生活/治愈账号偏 zoom 舒缓)。 - 无 Profile:先确认横版/竖版;默认每 2 拍、zoom 特效。
规则
- 音乐节奏越明确卡点越准;无明显节拍时脚本自动退化为等间隔切换并在报告说明。
- 卡点用硬切(不加转场),否则会糊掉节拍感——这是刻意设计。
- 素材不足自动循环;素材充足时建议
--every 1~2让每段都换新画面。 - 成片默认跟音乐等长,用
--max-duration卡平台时长。 - 产物统一进
outputs/主题名/。
参考来源
节拍检测用 librosa beat_track(onset 强度 + 动态规划求拍点),画面在拍点硬切是卡点混剪的
标准做法。把节拍→区间→逐段渲染→音画对齐封装成确定性脚本,避免手数拍子对不齐。
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.
- 10d ago First seen · 71 lines · 156 tokens per session scan A 5b2fcc29de48
beat-sync-video is a skill published in the GitHub repository ZJU-REAL/Easel (494 stars, last pushed 2d ago), licensed Apache-2.0. It adds 156 tokens to every session and 1,149 once invoked, about $0.0008 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.
Other skills, from other repositories
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
jacky-motion2-0-srt
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
video-podcast-maker
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video…
video-podcast-maker-lite
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when the user wants a quick narrated video from a topic without the full video-podcast-maker machinery (no extra skills, no thumbnails/shorts/publish matrix). Do NOT…
video-podcast-maker-nano
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints…