skills/qunz-video-extract/SKILL.md
Extracts and downloads videos from Douyin and Kuaishou short URLs using Playwright browser automation. Use when user shares "v.douyin.com" or "v.kuaishou.com" links, or asks to "download video", "extract video", "save short video", "提取视频", "下载短视频".
npx skillsauth add stonehah/qunz-skills qunz-video-extractInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Downloads videos from Douyin (抖音) and Kuaishou (快手) short URLs using headless browser automation.
Scripts located in scripts/ subdirectory.
Path Resolution:
SKILL_DIR = this SKILL.md's directory${SKILL_DIR}/scripts/main.tsScript Reference:
| Script | Purpose |
|--------|---------|
| scripts/main.ts | Main entry point |
| scripts/extractor.ts | Playwright-based video URL extraction |
| scripts/downloader.ts | Video file download |
| scripts/paths.ts | Path utilities |
Playwright must be installed before first use:
cd ${SKILL_DIR}/scripts && bun install && bunx playwright install chromium
Use Bash to check EXTEND.md existence (priority order):
# Check project-level first
test -f .baoyu-skills/qunz-video-extract/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/qunz-video-extract/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/qunz-video-extract/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/qunz-video-extract/EXTEND.md │ User home │ └──────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Ask user with AskUserQuestion (see references/config/first-time-setup.md) │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md Supports: Default output directory
| Key | Default | Values | Description |
|-----|---------|--------|-------------|
| default_output_dir | empty | path or empty | Default output directory (empty = ./video-extract/) |
Value priority:
-o)Schema: references/config/preferences-schema.md
| Pattern | Platform |
|---------|----------|
| https://v.douyin.com/xxxxxxx/ | Douyin (抖音) |
| https://v.kuaishou.com/xxxxxxx | Kuaishou (快手) |
| Text containing above URLs | Auto-extracted |
npx -y bun ${SKILL_DIR}/scripts/main.ts <url-or-text>
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o ./output/
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --info
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --json
| Option | Description |
|--------|-------------|
| <url-or-text> | Short URL or text containing a short URL |
| -o <path> | Output directory or file path |
| --json | JSON output with full metadata |
| --info | Show video info only, do not download |
| --help, -h | Show help |
File structure: video-extract/<slug>/video-<slug>.mp4
Text output (default): prints the file path to stdout.
JSON output (--json):
{
"platform": "douyin",
"videoId": "7123456789",
"title": "Video title",
"author": "Author name",
"videoUrl": "https://...",
"filePath": "video-extract/xxx/video-xxx.mp4",
"fileSize": 12345678,
"durationMs": 3500
}
Info output (--info): shows metadata without downloading.
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.
testing
Generates Xiaohongshu (Little Red Book) infographic series with 11 visual styles and 8 layouts. Breaks content into 1-10 cartoon-style images optimized for XHS engagement. Use when user mentions "小红书图片", "XHS images", "RedNote infographics", "小红书种草", or wants social media infographics for Chinese platforms.
development
Fetch any URL and convert to markdown using Chrome CDP. Saves the rendered HTML snapshot alongside the markdown, and automatically falls back to the pre-Defuddle HTML-to-Markdown pipeline when Defuddle fails. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.
documentation
Translates articles and documents between languages with three modes - quick (direct), normal (analyze then translate), and refined (analyze, translate, review, polish). Supports custom glossaries and terminology consistency via EXTEND.md. Use when user asks to "translate", "翻译", "精翻", "translate article", "translate to Chinese/English", "改成中文", "改成英文", "convert to Chinese", "localize", "本地化", or needs any document translation. Also triggers for "refined translation", "精细翻译", "proofread translation", "快速翻译", "快翻", "这篇文章翻译一下", or when a URL or file is provided with translation intent.
testing
Guides syncing a forked repository's local main branch with upstream/main through a temporary sync branch, conflict resolution, verification, and final merge. Use when user asks to sync source updates, merge upstream into main, or keep a personal fork current without opening a PR.