Youtube Clipper
op7418/Youtube-clipper-skill
YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。
Upload one or many videos to YouTube. An agent skill from jianshuo/claude-skills.
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jianshuo/claude-skills wjs-uploading-video --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/wjs-uploading-video .claude/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .claude/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-videoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jianshuo/claude-skills wjs-uploading-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/wjs-uploading-video .agents/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .agents/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jianshuo/claude-skills wjs-uploading-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/wjs-uploading-video .cursor/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .cursor/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jianshuo/claude-skills.git --path wjs-uploading-video--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jianshuo/claude-skills wjs-uploading-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/wjs-uploading-video .gemini/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .gemini/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jianshuo/claude-skills wjs-uploading-videoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/wjs-uploading-video .github/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .github/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jianshuo/claude-skills wjs-uploading-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jianshuo/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/wjs-uploading-video .opencode/skills/wjs-uploading-video && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "wjs-uploading-video" agent skill from https://github.com/jianshuo/claude-skills/tree/main/wjs-uploading-video into .opencode/skills/wjs-uploading-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wjs-uploading-video", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
wjs-uploading-videoUpload one or many videos to YouTube. An agent skill from jianshuo/claude-skills.
Wjs Uploading Video is an agent skill from jianshuo/claude-skills. Upload one or many videos to YouTube. Use when the user wants to "上传到 YouTube", "发 YouTube", "批量上传", "upload to YouTube", "post videos to YouTube", or to publish a finished final/ directory of MP4s. Reads per-video metadata (title / description / tags) from a sibling UPLOADMETA.md file when present (the user's standard markdown format), or from command-line flags. Survives behind a SOCKS/HTTP proxy by using requests directly for the resumable upload (the stock google-api-python-client MediaFileUpload stalls under…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/credentials-setup.md` and `scripts/upload_youtube.py`).
It sits in Media & Creative. It works with YouTube and Python. The repository describes itself as: 13 Claude Code skills for video production (transcribe / translate / dub / multicam / subtitles / reframe) + WeChat publishing. Compatible with Claude Code, OpenAI Codex CLI… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b2690f5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3uvxpip3curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
upload.googleapis.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Wjs Uploading Video loads about 2.1k tokens when it runs, and up to ~2.8k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 1,006 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from jianshuo/claude-skills at commit b2690f5, republished under its MIT licence (© jianshuo). 1,006 words, ~2,144 tokens.
.claude/skills/wjs-uploading-video/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Push finished videos to YouTube. Defaults are tuned for this user's workflow (王建硕 channel, China network with local proxy, 1080p horizontal recordings from Riverside / multicam edits).
.mp4 files and wants them on YouTubefinal/ directory with multiple segments and an UPLOAD_META.mdDon't use for:
wjs-reframing-video first to produce the 9:16 cut, then upload that via this skill)~/.config/youtube/credentials.json must exist. See references/credentials-setup.md for the 5-minute setup if missing.pip3 install google-auth-oauthlib google-api-python-client requests (only google-auth + requests are strictly needed at upload time, but the OAuth-lib pulls them).~/.config/youtube/token.json. Subsequent runs reuse it silently.YouTube's resumable upload protocol issues a Location: URL after the metadata POST, then accepts the bytes in chunked PUT requests. The stock google-api-python-client runs this over httplib2, which under this user's local SOCKS+HTTP proxy stack throws [Errno 65] No route to host or socket.timeout on those follow-up PUTs and stalls indefinitely.
This skill bypasses httplib2: it does OAuth via google-auth, then drives the resumable upload manually with requests, passing the proxy explicitly. 8 MB chunks (not the stock 256 KB) — fewer round-trips through the proxy. Exponential-backoff retry on socket.timeout / ConnectionError / 5xx.
If you're tempted to "just call the YouTube API client directly," don't — it'll fail in this environment.
ModuleNotFoundError: No module named 'google.oauth2' — Homebrew 升级 Python 大版本后 site-packages 会丢(2026-08 从 3.13→3.14 实际发生过)。别重新 pip install,直接用 uvx 带依赖跑(已验证):
uvx --with google-auth --with requests python \
~/.claude/skills/wjs-uploading-video/scripts/upload_youtube.py --dir "/path/to/final"final/ directorypython3 ~/.claude/skills/wjs-uploading-video/scripts/upload_youtube.py \
--dir "/path/to/final" \
--meta "/path/to/final/UPLOAD_META.md"The script:
UPLOAD_META.md and pairs each ## NN · filename.mp4 block to a video file in --dir--results-file (default <dir>/.youtube_upload_results.json) — safe to re-run after failures--results-filepython3 ~/.claude/skills/wjs-uploading-video/scripts/upload_youtube.py \
--video /path/to/clip.mp4 \
--title "My Title" \
--description "Body text" \
--tags "tag1,tag2,tag3"| Flag | Default | Notes |
|---|---|---|
--privacy | public | private / unlisted / public |
--category | 28 | 28 = Science & Tech. 27 = Education. 24 = Entertainment. |
--made-for-kids | false | YouTube requires this declaration |
--playlist <ID> | none | Add each uploaded video to a playlist |
--publish-at <ISO8601> | none | Schedule publish (requires --privacy private) |
--credentials | ~/.config/youtube/credentials.json | OAuth client JSON |
--token | ~/.config/youtube/token.json | Cached OAuth token |
--chunk-mb | 8 | Smaller chunks if uploads keep failing mid-flight |
--dry-run | off | Parse meta + list what would upload, don't touch network |
The parser expects the user's standard structure:
## 01 · segment_01_no-bugs.mp4
**短标题**
代码没有错误,只有意图不一致
**视频描述**
AI 时代屎山的重新定义...
—— 王建硕 × 任鑫《...》第 1 集
#王建硕 #AI编程 #ClaudeCode
---Mapping:
## NN · <filename> → which video this block describes**短标题** (or **Title**) block → YouTube title, verbatim. Short titles work but consider that YouTube allows up to 100 chars — if you want a richer title with series name, write it that way in **短标题****视频描述** (or **Description**) block → YouTube description, verbatim, with the #tag hashtags retained at the bottom#word tokens in the 视频描述 → comma-separated YouTube tags (each # is stripped; the user's channel name 王建硕 is auto-prepended per global instructions)Filename in the heading must match an actual file in --dir. If a file exists but has no meta block, the script errors loudly — pass --allow-missing-meta to upload it with --title <basename> and empty description.
--privacy unlisted (link-only) or --privacy private (owner-only) when you want to review first--category per uploadIf you write description footers, signatures, or "subscribe to me" lines into a video's metadata, use 王建硕 (the user's channel name). Don't put a guest's name there — guests like 任鑫 belong inside the description body when they're the conversation partner, never in the channel-CTA slot.
| Symptom | Fix |
|---|---|
access_denied 403 on consent screen | Add user's Google account to the OAuth client's Test users list in Google Cloud Console |
[Errno 65] No route to host mid-upload | Almost always a proxy issue — verify curl --max-time 10 https://upload.googleapis.com/upload/youtube/v3/videos returns a 4xx (any 4xx = proxy reachable); if 000, the proxy is down |
| Upload stalls with no progress lines | The proxy is silently buffering. Lower --chunk-mb 4 or restart the proxy daemon |
quotaExceeded (API units) | YouTube Data API default quota is 10,000 units/day, each upload is 1,600 units — so ~6 uploads/day. Request a quota bump in Google Cloud Console, or split uploads across days |
429 rateLimitExceeded · Video Uploads per day | A DIFFERENT, separate limit from API units — YouTube's per-project daily video-upload count (anti-abuse, tied to project verification status; can be very low). When hit, every upload in the batch fails init session failed: 429, none succeed. It is NOT a proxy/auth problem and can't be worked around. It resets at midnight US Pacific Time (not your local midnight). Options: wait for the PT reset and re-run (the results file was cleared so all retry); or upload via the YouTube Studio web UI, which does NOT consume this API limit; or get the GCP project verified to raise the cap. Earlier uploads the same PT-day (even manual API ones) eat into this count. |
| Token refresh fails | Delete ~/.config/youtube/token.json and re-run; OAuth browser flow restarts |
--results-file (JSON: file, title, video id, URL)public by default — they're live the moment the upload completes. If the user wanted a review buffer, mention they can re-upload with --privacy unlisted (or flip back to unlisted in YouTube Studio)© jianshuo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts, references) in wjs-uploading-video of jianshuo/claude-skills.
Open the folder on GitHubat commit b2690f5
Wjs Uploading Video next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Wjs Uploading Video this skilljianshuo/claude-skills | 131 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Youtube Clipperop7418/Youtube-clipper-skill | 2.2k | — | ~1.6k | Automated safety check: Notes | MIT | |
| Ffmpeg Skillkajisho5/ffmpeg-skill | 1.9k | — | ~7.4k | Automated safety check: Pass | MIT | |
| Claude Real VideoHUANGCHIHHUNGLeo/claude-real-video | 2.2k | — | ~639 | Automated safety check: Pass | MIT | |
| Video To Subtitle Summaryimlewc/video-to-subtitle-summary-skill | 218 | — | ~4.6k | Automated safety check: Notes | MIT | |
| Video To NotesKIRVO-REPORTING/video-to-notes | 105 | — | ~1.5k | Automated safety check: Pass | MIT |
op7418/Youtube-clipper-skill
YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。
kajisho5/ffmpeg-skill
Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…
HUANGCHIHHUNGLeo/claude-real-video
Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.
imlewc/video-to-subtitle-summary-skill
A skill your agent uses when user provides a short video platform URL or local video/audio file and wants subtitles/AI summary, or when user asks to list their own AI Douyin historical tasks.
KIRVO-REPORTING/video-to-notes
Use immediately for any bare YouTube or YouTube Shorts URL, youtu.be link, Bilibili or b23.tv link, or other video URL; do not ask what the user wants.
HUANGCHIHHUNGLeo/claude-real-video
幫 Leo 看影片。當 Leo 丟影片連結(YouTube/IG/TikTok)或本機影片檔,要摘要、分析、拆解對標時使用——Claude 不能直接吃影片,先用這個工具抽關鍵幀+逐字稿+運鏡節奏+聲音/語氣/手勢時間軸再讀。
jianshuo/claude-skills
A skill your agent uses when the user has a long-form video (interview / lecture / podcast / conversation) and a transcript SRT, and wants to extract 3–6 stand-alone topical short clips from it.
jianshuo/claude-skills
A skill your agent uses when migrating a WordPress site to a Hugo static site on GitHub Pages from a WXR export (.xml) plus the wp-content/uploads folder — preserving /archives/<id/ URLs, localizing…
jianshuo/claude-skills
A skill your agent uses when the user has a video + an SRT and wants the subtitles either burned into the pixels (libass, always-visible) or soft-muxed as a togglable track.
jianshuo/claude-skills
A skill your agent uses when the user complains about spam on his X/Twitter posts — 同城面付 / 寻固炮 / 线下上门 / 免费破处 这类引流号在他推文下刷的 emoji 垃圾回复 — and wants them removed.
jianshuo/claude-skills
A skill your agent uses when the user wants a book turned into YouTube chapter videos — 每章用 VoiceDrop 读书的有声书 mp3 做音轨,配 GPT Image 2 画面和中心思想大字,输出 1920×1080 横屏视频发 YouTube。Triggers — "把这本书做成视频"…
jianshuo/claude-skills
A skill your agent uses when the user wants to add an in-site feedback loop to a website repo — a floating "提个建议" button where allowlisted visitors submit suggestions that become a GitHub Issue…
Categories
Upload one or many videos to YouTube. An agent skill from jianshuo/claude-skills. Wjs Uploading Video is an agent skill from jianshuo/claude-skills. Upload one or many videos to YouTube.
Wjs Uploading Video fits situations like: the user wants to 上传到 YouTube; upload to YouTube; post videos to YouTube; publish a finished final/ directory of MP4s.
Run `npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a claude-code`. Or copy the skill folder (wjs-uploading-video in jianshuo/claude-skills) into .claude/skills/wjs-uploading-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a codex`. Or copy the skill folder (wjs-uploading-video in jianshuo/claude-skills) into .agents/skills/wjs-uploading-video in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jianshuo/claude-skills --skill wjs-uploading-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wjs-uploading-video, .gemini/skills/wjs-uploading-video, .github/skills/wjs-uploading-video and .opencode/skills/wjs-uploading-video in your project.
Going by SKILL.md and its folder, Wjs Uploading Video needs Python for the scripts in its folder and the command-line tools its instructions call (python3, uvx, pip3 and curl). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: upload.googleapis.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Wjs Uploading Video is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 660 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Wjs Uploading Video: Youtube Clipper (op7418/Youtube-clipper-skill, 2.2k stars), Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars), Claude Real Video (HUANGCHIHHUNGLeo/claude-real-video, 2.2k stars) and Video To Subtitle Summary (imlewc/video-to-subtitle-summary-skill, 218 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jianshuo (a GitHub user) maintains it in jianshuo/claude-skills, which has 131 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on August 20, 2026.
Source: jianshuo/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.