Not in the top 1,000 by GitHub stars
ALBEDO-TABAI/video-copy-analyzer
Video Copy Analyzer - AI-powered video transcription and copywriting analysis skill
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
76dc5f0f2ce1 → 76dc5f0f2ce1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 76dc5f0f2ce1
No earlier version was observed for comparison.
Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
video-copy-analyzer
When your agent uses it
视频文案分析一站式工具。下载在线视频(B站/YouTube/抖音等)、使用FunASR进行高速中文语音转录、 自动校正文稿、并进行三维度综合分析(TextContent/Viral/Brainstorming)。 使用场景:当用户需要分析短视频文案、提取视频内容、学习爆款文案技巧时。 关键词:视频分析、文案分析、语音转文字、FunASR、爆款分析、视频下载
What it loads into context
Frontmatter
122 tokensAlways available to the agent
SKILL.md
3,782 tokensWhen the skill is activated
Reference documents
4,147 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 安装部署
- 首次使用设置
- 工作流程(5 阶段)
- 完成后输出
- 参考文件
- FunASR 技术细节
- 故障排除
Scripts executed separately
main.pyscripts/check_environment.pyscripts/douyin_browser.mjsscripts/download_douyin.pyscripts/extract_subtitle.pyscripts/extract_subtitle_funasr.pyscripts/fetch_bilibili_subtitle.pyscripts/transcribe_audio.py
Files
.gitignoreasset271 bytesLICENSEasset1,056 bytesREADME.mddoc5,630 bytesREADME.zh-CN.mddoc5,384 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesSKILL.mdcore12,791 bytesmain.pyruns6,714 bytesreferences/analysis-frameworks.mddoc3,222 bytesscripts/check_environment.pyruns3,069 bytesscripts/douyin_browser.mjsruns10,539 bytesscripts/download_douyin.pyruns14,860 bytesscripts/extract_subtitle.pyruns9,081 bytesscripts/extract_subtitle_funasr.pyruns18,558 bytesscripts/fetch_bilibili_subtitle.pyruns14,931 bytesscripts/transcribe_audio.pyruns3,986 bytes
Read SKILL.md
# 视频文案分析工具
一站式视频内容提取与文案分析,支持 B站、YouTube、抖音 等平台。
## 安装部署
### 系统要求
- Python 3.9+
- FFmpeg(用于音视频处理)
- 约 3GB 磁盘空间(FunASR 模型缓存)
### 一键安装
View the complete source on GitHubSkills included
- video-copy-analyzer
Repository facts
- License
- MIT
- Created
- Feb 3, 2026
- Last pushed
- Aug 18, 2026
- Forks
- 15
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 9 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 86 network referencesin 9 files: scripts/fetch_bilibili_subtitle.py:18 scripts/download_douyin.py:9 scripts/extract_subtitle_funasr.py:77 and 6 more
- No hidden or obfuscated text
- No instruction overrides
- 8 executable scriptsin 8 files: main.py:1 scripts/check_environment.py:1 scripts/douyin_browser.mjs:1 and 5 more
- 11 references to secretsin 2 files: scripts/fetch_bilibili_subtitle.py:11 .gitignore:11
- No requests to vote in Hot
Show all 105 signals by file
.gitignore
- Access to secretsline 11
[Credential-related source omitted]
README.md
- Network accessline 9
[](https://claude.ai) - Network accessline 10
[](LICENSE) - Network accessline 57
git clone https://github.com/ALBEDO-TABAI/video-copy-analyzer.git .agent/skills/video-copy-analyzer - Network accessline 62
> "Analyze this video: https://www.bilibili.com/video/BV1xxxxx"
README.zh-CN.md
- Network accessline 9
[](https://claude.ai) - Network accessline 10
[](LICENSE) - Network accessline 57
git clone https://github.com/ALBEDO-TABAI/video-copy-analyzer.git .agent/skills/video-copy-analyzer - Network accessline 62
> "分析这个视频:https://www.bilibili.com/video/BV1xxxxx"
SKILL.md
- Network accessline 347
### FunASR 模型下载失败 如果 ModelScope 下载速度慢或中断,可手动从 [ModelScope](https://www.modelscope.cn/models) 下载以下模型到 `~/.cache/modelscope/hub/models/iic/` 目录: - Network accessline 348
如果 ModelScope 下载速度慢或中断,可手动从 [ModelScope](https://www.modelscope.cn/models) 下载以下模型到 `~/.cache/modelscope/hub/models/iic/` 目录:
main.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 147
print() print("示例:") print(" python main.py https://www.bilibili.com/video/BVxxxx") - Network accessline 148
print("示例:") print(" python main.py https://www.bilibili.com/video/BVxxxx") print(" python main.py ./my_video.mp4 ./output medium zh") - Network accessline 149
print(" python main.py https://www.bilibili.com/video/BVxxxx")
scripts/check_environment.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 57
else: print(" ❌ FFmpeg 未安装") missing.append("下载 FFmpeg: https://ffmpeg.org/download.html") - Network accessline 58
print(" ❌ FFmpeg 未安装") missing.append("下载 FFmpeg: https://ffmpeg.org/download.html") all_ok = False - Network accessline 59
missing.append("下载 FFmpeg: https://ffmpeg.org/download.html")
scripts/douyin_browser.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 89
for (let i = 0; i < tries; i++) { try { const res = await fetch(url, { signal: AbortSignal.timeout(400) }); - Network accessline 90
try { const res = await fetch(url, { signal: AbortSignal.timeout(400) }); if (res.ok) return res.json(); - Network accessline 91
const res = await fetch(url, { signal: AbortSignal.timeout(400) }); - Network accessline 154
const created = await cdpCall(browserWs, 1, 'Target.createTarget', { url: 'about:blank' }); const listed = await fetch(`${cdpOrigin}/json/list`).then((r) => r.json()); - Network accessline 155
const listed = await fetch(`${cdpOrigin}/json/list`).then((r) => r.json()); - Network accessline 195
const targets = [pageUrl]; if (awemeId) { targets.push(`https://www.douyin.com/video/${awemeId}`); - Network accessline 196
if (awemeId) { targets.push(`https://www.douyin.com/video/${awemeId}`); targets.push(`https://www.douyin.com/jingxuan?modal_id=${awemeId}`); - Network accessline 197
targets.push(`https://www.douyin.com/video/${awemeId}`); - Network accessline 198
targets.push(`https://www.douyin.com/jingxuan?modal_id=${awemeId}`); - Network accessline 201
await cdpCall(ws, 12, 'Page.navigate', { url: 'https://www.douyin.com/' }); - Network accessline 317
log(`using browser: ${bin}`); child = launchBrowser(bin, port, profile); origin = `http://127.0.0.1:${port}`; - Network accessline 318
child = launchBrowser(bin, port, profile); origin = `http://127.0.0.1:${port}`; } else { - Network accessline 319
origin = `http://127.0.0.1:${port}`;
scripts/download_douyin.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 9
示例: python download_douyin.py "https://v.douyin.com/xxxxx" ./video.mp4 - Network accessline 10
python download_douyin.py "https://v.douyin.com/xxxxx" ./video.mp4 - Network accessline 11
python download_douyin.py "https://www.douyin.com/video/xxxxx" ./video.mp4 - Network accessline 38
PLAY_HEADERS = { "User-Agent": UA_DESKTOP, "Referer": "https://www.douyin.com/", - Network accessline 39
"User-Agent": UA_DESKTOP, "Referer": "https://www.douyin.com/", "Accept": "*/*", - Network accessline 40
"Referer": "https://www.douyin.com/", - Network accessline 171
def play_urls_from_uri(uri: str) -> list[str]: return [ f"https://www.douyin.com/aweme/v1/play/?video_id={uri}&ratio=1080p&line=0", - Network accessline 172
return [ f"https://www.douyin.com/aweme/v1/play/?video_id={uri}&ratio=1080p&line=0", f"https://aweme.snssdk.com/aweme/v1/play/?video_id={uri}&ratio=720p&line=0", - Network accessline 173
f"https://www.douyin.com/aweme/v1/play/?video_id={uri}&ratio=1080p&line=0", - Network accessline 174
f"https://aweme.snssdk.com/aweme/v1/play/?video_id={uri}&ratio=720p&line=0", - Network accessline 220
pages.extend( [ f"https://www.iesdouyin.com/share/video/{aweme_id}", - Network accessline 221
[ f"https://www.iesdouyin.com/share/video/{aweme_id}", f"https://m.douyin.com/share/video/{aweme_id}", - Network accessline 222
f"https://www.iesdouyin.com/share/video/{aweme_id}", - Network accessline 223
f"https://m.douyin.com/share/video/{aweme_id}", - Network accessline 401
if aweme_id: print(f"✓ 视频 ID: {aweme_id}") watch_url = f"https://www.douyin.com/video/{aweme_id}" - Network accessline 402
print(f"✓ 视频 ID: {aweme_id}") watch_url = f"https://www.douyin.com/video/{aweme_id}" else: - Network accessline 403
watch_url = f"https://www.douyin.com/video/{aweme_id}" - Network accessline 439
if len(sys.argv) < 3: print("用法: python download_douyin.py <抖音链接> <输出路径>") print("示例: python download_douyin.py 'https://v.douyin.com/xxxxx' ./video.mp4") - Network accessline 440
print("用法: python download_douyin.py <抖音链接> <输出路径>") print("示例: python download_douyin.py 'https://v.douyin.com/xxxxx' ./video.mp4") sys.exit(1) - Network accessline 441
print("示例: python download_douyin.py 'https://v.douyin.com/xxxxx' ./video.mp4")
scripts/extract_subtitle.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/extract_subtitle_funasr.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 77
headers = { "User-Agent": "Mozilla/5.0", "Referer": "https://www.bilibili.com", - Network accessline 78
"User-Agent": "Mozilla/5.0", "Referer": "https://www.bilibili.com", } - Network accessline 79
"Referer": "https://www.bilibili.com", - Network accessline 82
try: resp = requests.get( - Network accessline 83
resp = requests.get( - Network accessline 84
f"https://api.bilibili.com/x/player/pagelist?bvid={bvid}", - Network accessline 91
cid = data["data"][0]["cid"] resp = requests.get( - Network accessline 92
resp = requests.get( - Network accessline 93
f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}", - Network accessline 98
resp = requests.get( - Network accessline 99
f"https://api.bilibili.com/x/player/wbi/v2?aid={aid}&cid={cid}", - Network accessline 111
resp = requests.get(sub_url, headers=headers, timeout=10) - Network accessline 365
调用方式参照 FunASR 官方 demo: https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/paraformer/demo.py - Network accessline 366
https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/paraformer/demo.py
scripts/fetch_bilibili_subtitle.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 11
[Credential-related source omitted] - Network accessline 18
示例: python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt python fetch_bilibili_subtitle.py "https://www.bilibili.com/video/BV1vdZ6BJEcQ/" output.srt - Network accessline 19
python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt python fetch_bilibili_subtitle.py "https://www.bilibili.com/video/BV1vdZ6BJEcQ/" output.srt python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt --browser firefox - Network accessline 20
python fetch_bilibili_subtitle.py "https://www.bilibili.com/video/BV1vdZ6BJEcQ/" output.srt - Network accessline 52
if 'b23.tv' in input_str: try: resp = requests.head(input_str, allow_redirects=True, timeout=10) - Network accessline 53
try: resp = requests.head(input_str, allow_redirects=True, timeout=10) match = re.search(r'(BV[a-zA-Z0-9]{10})', resp.url) - Network accessline 54
resp = requests.head(input_str, allow_redirects=True, timeout=10) - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 85
"--no-warnings", "-q", "https://www.bilibili.com/video/BV1xx411c7mD/", # 任意有效BV号 - Network accessline 86
"-q", "https://www.bilibili.com/video/BV1xx411c7mD/", # 任意有效BV号 ] - Network accessline 87
"https://www.bilibili.com/video/BV1xx411c7mD/", # 任意有效BV号 - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 128
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 235
[Credential-related source omitted] - Network accessline 260
headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36", "Referer": "https://www.bilibili.com", - Network accessline 261
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36", "Referer": "https://www.bilibili.com", } - Network accessline 262
"Referer": "https://www.bilibili.com", - Network accessline 267
print("\n📡 调用 B站 API...") url = f"https://api.bilibili.com/x/player/pagelist?bvid={bvid}" resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 268
url = f"https://api.bilibili.com/x/player/pagelist?bvid={bvid}" resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) data = resp.json() - Network accessline 269
resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 282
url = f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}" resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 283
resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 295
url = f"https://api.bilibili.com/x/player/wbi/v2?aid={aid}&cid={cid}" resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 296
resp = requests.get(url, headers=headers, cookies=cookies, timeout=10) - Network accessline 330
resp = requests.get(subtitle_url, headers=headers, timeout=10) - Network accessline 384
示例: python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt python fetch_bilibili_subtitle.py "https://b23.tv/W2ot8As" output.srt - Network accessline 385
python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt python fetch_bilibili_subtitle.py "https://b23.tv/W2ot8As" output.srt python fetch_bilibili_subtitle.py BV1vdZ6BJEcQ output.srt --browser firefox - Network accessline 386
python fetch_bilibili_subtitle.py "https://b23.tv/W2ot8As" output.srt - Access to secretsline 390
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted]
scripts/transcribe_audio.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 4 facts
- Contacts ffmpeg.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/check_environment.py:59High confidence
- Contacts aweme.snssdk.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/download_douyin.py:174High confidence
- Contacts www.iesdouyin.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/download_douyin.py:222High confidence
- Contacts b23.tv, which SKILL.md, the README and the plugin manifest do not mentionscripts/fetch_bilibili_subtitle.py:386High confidence
Signal confidence: 104 facts
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in code of documentationREADME.md:57Low confidence
- Network access in prose of documentationREADME.md:62Low confidence
- Network access in prose of documentationREADME.zh-CN.md:9Low confidence
- Network access in prose of documentationREADME.zh-CN.md:10Low confidence
- Network access in code of documentationREADME.zh-CN.md:57Low confidence
- Network access in prose of documentationREADME.zh-CN.md:62Low confidence
- Network access in prose of the SKILL.mdSKILL.md:347Low confidence
- Network access in prose of the SKILL.mdSKILL.md:348Low confidence
- Executable script in code of a file that runsmain.py:1High confidence
- Network access in code of a file that runsmain.py:147High confidence
- Network access in code of a file that runsmain.py:148High confidence
- Network access in code of a file that runsmain.py:149High confidence
- Executable script in code of a file that runsscripts/check_environment.py:1High confidence
- Network access in code of a file that runsscripts/check_environment.py:57High confidence
- Network access in code of a file that runsscripts/check_environment.py:58High confidence
- Network access in code of a file that runsscripts/check_environment.py:59High confidence
- Executable script in code of a file that runsscripts/douyin_browser.mjs:1High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:89High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:90High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:91High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:154High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:155High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:195High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:196High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:197High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:198High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:201High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:317High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:318High confidence
- Network access in code of a file that runsscripts/douyin_browser.mjs:319High confidence
- Executable script in code of a file that runsscripts/download_douyin.py:1High confidence
- Network access in prose of a file that runsscripts/download_douyin.py:9Low confidence
- Network access in prose of a file that runsscripts/download_douyin.py:10Low confidence
- Network access in prose of a file that runsscripts/download_douyin.py:11Low confidence
- Network access in code of a file that runsscripts/download_douyin.py:38High confidence
- Network access in code of a file that runsscripts/download_douyin.py:39High confidence
- Network access in code of a file that runsscripts/download_douyin.py:40High confidence
- Network access in code of a file that runsscripts/download_douyin.py:171High confidence
- Network access in code of a file that runsscripts/download_douyin.py:172High confidence
- Network access in code of a file that runsscripts/download_douyin.py:173High confidence
- Network access in code of a file that runsscripts/download_douyin.py:174High confidence
- Network access in code of a file that runsscripts/download_douyin.py:220High confidence
- Network access in code of a file that runsscripts/download_douyin.py:221High confidence
- Network access in code of a file that runsscripts/download_douyin.py:222High confidence
- Network access in code of a file that runsscripts/download_douyin.py:223High confidence
- Network access in code of a file that runsscripts/download_douyin.py:401High confidence
- Network access in code of a file that runsscripts/download_douyin.py:402High confidence
- Network access in code of a file that runsscripts/download_douyin.py:403High confidence
and 54 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.