Loading...
Loading...
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).
npx skill4agent add jianshuo/claude-skills wjs-uploading-video.mp4final/UPLOAD_META.mdwjs-reframing-video~/.config/youtube/credentials.jsonreferences/credentials-setup.mdpip3 install google-auth-oauthlib google-api-python-client requestsgoogle-authrequests~/.config/youtube/token.jsonLocation:PUTgoogle-api-python-clienthttplib2[Errno 65] No route to hostsocket.timeouthttplib2google-authrequestssocket.timeoutConnectionErrorfinal/python3 ~/.claude/skills/wjs-uploading-video/scripts/upload_youtube.py \
--dir "/path/to/final" \
--meta "/path/to/final/UPLOAD_META.md"UPLOAD_META.md## NN · filename.mp4--dir--results-file<dir>/.youtube_upload_results.json--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 |
|---|---|---|
| | |
| | 28 = Science & Tech. 27 = Education. 24 = Entertainment. |
| | YouTube requires this declaration |
| none | Add each uploaded video to a playlist |
| none | Schedule publish (requires |
| | OAuth client JSON |
| | Cached OAuth token |
| | Smaller chunks if uploads keep failing mid-flight |
| off | Parse meta + list what would upload, don't touch network |
## 01 · segment_01_no-bugs.mp4
**短标题**
代码没有错误,只有意图不一致
**视频描述**
AI 时代屎山的重新定义...
—— 王建硕 × 任鑫《...》第 1 集
#王建硕 #AI编程 #ClaudeCode
---## NN · <filename>**短标题****Title****短标题****视频描述****Description**#tag#word#王建硕--dir--allow-missing-meta--title <basename>--privacy unlisted--privacy private--category| Symptom | Fix |
|---|---|
| Add user's Google account to the OAuth client's Test users list in Google Cloud Console |
| Almost always a proxy issue — verify |
| Upload stalls with no progress lines | The proxy is silently buffering. Lower |
| 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 |
| Token refresh fails | Delete |
--results-filepublic--privacy unlisted