← All skills
ancient-rap-battle
75 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By anbeime/skill (GitHub) · coding · 9,559 stars · scanned at commit 667f459
古人说唱 Battle:把两个历史上的死对头(诸葛亮 vs 司马懿、岳飞 vs 秦桧……)做成一条 AI 说唱对决短视频,从选题写词(每句配史料注释)、Suno 做歌、Midjourney 定妆、即梦 Seedance 2.5 网页版分段生成(提示词按半句精确到 0.01 秒写歌词,口型一次对好),到自动逐镜头对齐、拼接、字幕包装、封面和发布文案一条龙。用户说"做一期 A vs B"、"古人说唱 battle"、"历史人物说唱"、"rap battle 视频",或者要改已有一期的歌词、镜头、字幕、封面时使用。Make an AI rap-battle short between two historical rivals, end to end, with Seedance 2.5 (or MiniMax H3).
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 3 places.
Runs commands on your computer
The author does not mention this. Expected for a coding skill.
Found in 23 places.
Show 17 more
- skills/ancient-rap-battle/ancient-rap-battle/scripts/assemble.py, line 78
subprocess.run(["ffmpeg", "-y", "-v", "error"] + inputs + ["-filter_complex", fc, "-map", "[v]", "-map", "%d:a" % n, - skills/ancient-rap-battle/ancient-rap-battle/scripts/clean_vocal.py, line 30
subprocess.run([sys.executable, "-m", "demucs", "-n", "htdemucs_ft", "--two-stems=vocals", "-o", - skills/ancient-rap-battle/ancient-rap-battle/scripts/clean_vocal.py, line 35
subprocess.run(["ffmpeg", "-v", "error", "-y", "-i", tmp, "-af", - skills/ancient-rap-battle/ancient-rap-battle/scripts/cover.py, line 82
subprocess.run(["ffmpeg", "-y", "-v", "error", "-ss", str(a.t), "-i", - skills/ancient-rap-battle/ancient-rap-battle/scripts/h3run.py, line 112
subprocess.run(["ffmpeg", "-y", "-v", "error", "-ss", "%.3f" % a, "-t", "%.3f" % dur, - skills/ancient-rap-battle/ancient-rap-battle/scripts/lipcheck.py, line 55
raw = subprocess.run(["ffmpeg", "-v", "error", "-i", path, "-ac", "1", "-ar", "16000", "-f", "f32le", "-"], - skills/ancient-rap-battle/ancient-rap-battle/scripts/make_clips.py, line 129
subprocess.run(["ffmpeg", "-y", "-v", "error", "-i", own, out], check=True) - skills/ancient-rap-battle/ancient-rap-battle/scripts/make_clips.py, line 134
subprocess.run(["ffmpeg", "-y", "-v", "error", "-i", sheet, "-vf", - skills/ancient-rap-battle/ancient-rap-battle/scripts/package.py, line 142
r = subprocess.run(["ffprobe", "-v", "error", "-select_streams", "v:0", "-show_entries", "stream=width,height,r_frame_rate", - skills/ancient-rap-battle/ancient-rap-battle/scripts/package.py, line 225
subprocess.run(["ffmpeg", "-y", "-v", "error"] + inputs + - skills/ancient-rap-battle/ancient-rap-battle/scripts/package.py, line 232
subprocess.run(["ffmpeg", "-y", "-v", "error", "-i", out, "-vf", "scale=1280:-2", "-r", "30", "-c:v", "libx264", - skills/ancient-rap-battle/ancient-rap-battle/scripts/qa.py, line 17
raw = subprocess.run(["ffmpeg", "-v", "error", "-i", p, "-ac", "1", "-ar", "8000", "-f", "f32le", "-"], - skills/ancient-rap-battle/ancient-rap-battle/scripts/seedance_align.py, line 39
subprocess.run(["ffmpeg", "-v", "error", "-y", "-i", path, "-vn", "-ac", "1", "-ar", "16000", tmp], check=True) - skills/ancient-rap-battle/ancient-rap-battle/scripts/seedance_align.py, line 68
r = subprocess.run(["ffmpeg", "-hide_banner", "-i", path, "-vf", "scale=480:-1,select='gt(scene,0.25)',showinfo", - skills/ancient-rap-battle/ancient-rap-battle/scripts/seedance_align.py, line 75
return float(subprocess.run(["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "csv=p=0", path], - skills/ancient-rap-battle/ancient-rap-battle/scripts/seedance_align.py, line 99
subprocess.run(["ffmpeg", "-v", "error", "-y", "-i", clip, "-i", os.path.join(ep, "音乐_最终.wav"), - skills/ancient-rap-battle/ancient-rap-battle/scripts/seedance_assemble.py, line 31
subprocess.run(["ffmpeg", "-v", "error", "-y", "-i", p, "-vn", "-ac", "1", "-ar", "8000", t], check=True)
and 3 more places
Connects to the internet
The author does not mention this.
Found in 8 places.
Show 5 more
- skills/ancient-rap-battle/ancient-rap-battle/scripts/h3run.py, line 52
req = urllib.request.Request(API + path, data=data, headers=h, method=method) - skills/ancient-rap-battle/ancient-rap-battle/scripts/h3run.py, line 54
with urllib.request.urlopen(req, timeout=timeout) as r: - skills/ancient-rap-battle/ancient-rap-battle/scripts/h3run.py, line 162
urllib.request.urlretrieve(url, out) - skills/ancient-rap-battle/ancient-rap-battle/scripts/lipcheck.py, line 13
import urllib.request - skills/ancient-rap-battle/ancient-rap-battle/scripts/lipcheck.py, line 28
urllib.request.urlretrieve(MODEL_URL, p)
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'ancient-rap-battle' ] || [ -L ~/.agents/skills/'ancient-rap-battle' ]; then echo 'A skill folder named ancient-rap-battle already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/anbeime/skill' "$d" && git -C "$d" checkout --quiet '667f4598df414d91249beeee6f5e90411ce68320' -- 'skills/ancient-rap-battle/ancient-rap-battle' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/ancient-rap-battle/ancient-rap-battle' ~/.agents/skills/'ancient-rap-battle' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'ancient-rap-battle' ~/.claude/skills/'ancient-rap-battle' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for anbeime/skill shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/anbeime/skill/)
Score history
| Date | Version | Score |
|---|
| 2026-11-14 | 667f459 | 75 |