wjs-uploading-video

Solid

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 `UPLOAD_META.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 this user's proxy setup).

Code & Development 129 stars 21 forks Updated 3 weeks ago MIT

Install

View on GitHub

Quality Score: 85/100

Stars 20%
70
Recency 20%
90
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# wjs-uploading-video 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). ## When to use - User has one or more finished `.mp4` files and wants them on YouTube - User points to a `final/` directory with multiple segments and an `UPLOAD_META.md` - User wants a specific privacy / playlist / scheduled publish **Don't use** for: - 微信视频号 upload (no public API; user uploads manually via web) - 抖音 / 小红书 / B 站 (different APIs, not yet implemented here) - YouTube Shorts variants from horizontal source (use `wjs-reframing-video` first to produce the 9:16 cut, then upload that via this skill) ## Prerequisites (one-time per machine) 1. **Google Cloud OAuth client**: `~/.config/youtube/credentials.json` must exist. See `references/credentials-setup.md` for the 5-minute setup if missing. 2. **Python deps**: `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). 3. **First-ever upload** opens a browser for Google consent and writes `~/.config/youtube/token.json`. Subsequent runs reuse it silently. ## How it works (and why it's not the stock youtube-uploader) 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 o...

Details

Author
jianshuo
Repository
jianshuo/claude-skills
Created
4 months ago
Last Updated
3 weeks ago
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

setup-youtube

Opens a live YouTube brand channel and wires its OAuth token into social-flow. Use when the user asks to "유튜브 채널 개설", "유튜브 브랜드 채널 만들어", "유튜브 API 연동해줘", "쇼츠 붙여줘", "set up a YouTube channel". Drives advanced-feature identity verification, brand channel creation, branding, and Google OAuth refresh_token issuance in the browser through ego lite, handing the screen to the user for phone and selfie verification and consent, then saves SNS_TOKEN_DIR/[slug]/youtube-oauth-client.json and verifies it with sns_account_check. Spans several days because verification approval is asynchronous — resumable, and a status mode reports what is still pending.

0 Updated today
ttalkkaklab
Code & Development Solid

wjs-overlaying-video

Use when the user has one or more video clips and wants to add post-production on top — AI-generated cover as first frame, HTML/CSS captions synced to SRT, kinetic illustration overlays at hook moments, chapter chips, end-card CTA, or any other timed motion graphics. Most often used as the downstream of `/wjs-segmenting-video` — pick up where that skill stopped (raw cropped clip + per-clip SRT) and produce the upload-ready MP4. Backed by HyperFrames so everything compiles to ONE final encode — no cascade of re-encodes. Triggers — "加封面", "加字幕", "加动画", "加 CTA", "做后期", "post-production", "title card", "kinetic captions", "end card".

129 Updated 3 weeks ago
jianshuo
Data & Documents Solid

wjs-converting-text-to-video

Use when the user wants a 王建硕-style WeChat article (article.md) turned into a narrated short MP4 video — TTS voiceover via 火山引擎 Volcano TTS, HyperFrames CSS/GSAP animation per scene, subtle SFX, abstract watercolor background, full pipeline rendering to 1080×1920 portrait MP4 (30-90s). Triggers — "把这篇文章做成视频", "做一个解说视频", "讲解视频", "/wjs-converting-text-to-video".

129 Updated 3 weeks ago
jianshuo