# youtube-uploader

Uploads videos to YouTube with titles, descriptions, tags, and publishing settings. It also handles Shorts and playlist placement.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 531 installs · ★ 50
- Author: aviz85
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/aviz85/claude-skills-library/tree/HEAD/skills/youtube-uploader/SKILL.md
- Updated: 2026-07-08
- HTML: https://affpapa.org/en/nevibecode/skills/youtube-uploader

## What it does

This skill runs a TypeScript uploader for YouTube. It accepts a video path and lets the agent set the title, description, tags, category, privacy mode, thumbnail, playlist, or Shorts flag. A dry run can preview the operation before the file is sent. Successful uploads return the video ID, URL, and status.

Initial use requires OAuth2 authentication with `npx ts-node youtube-upload.ts --auth`; the token is stored in `.youtube-token.json`. Add `YOUTUBE_CLIENT_ID` and `YOUTUBE_CLIENT_SECRET` to `scripts/.env`, then enable YouTube Data API v3 in Google Cloud Console. Without those credentials, the upload cannot complete. The script supports MP4, MOV, AVI, WMV, FLV, 3GP, and MPEG files, subject to YouTube limits for file size, title, description, tags, and daily quota.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add aviz85/claude-skills-library --skill youtube-uploader -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/youtube-uploader/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/youtube-uploader/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add aviz85/claude-skills-library --skill youtube-uploader -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/youtube-uploader/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add aviz85/claude-skills-library --skill youtube-uploader -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/youtube-uploader/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install aviz85/claude-skills-library youtube-uploader
```

2. **Manually: put the files in place**
- File: `.github/skills/youtube-uploader/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add aviz85/claude-skills-library --skill youtube-uploader -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/aviz85/claude-skills-library --path skills/youtube-uploader
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/youtube-uploader/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add aviz85/claude-skills-library --skill youtube-uploader -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/aviz85/claude-skills-library/tree/HEAD/skills/youtube-uploader/SKILL.md

## When to use it
- upload a video with custom metadata
- publish a vertical clip as a YouTube Short
- place an upload into a playlist
- preview an upload before sending it
- set public, unlisted, or private visibility

## Example prompts
- Use the `youtube-uploader` skill to upload `tutorial.mp4` with a title, description, tags, and category `28`.
- Upload `short_video.mp4` as a YouTube Short with `public` visibility.
- Run a dry preview for `episode5.mp4` without uploading the file to YouTube.

## Similar
- [remotion-render](https://affpapa.org/en/nevibecode/skills/remotion-render.md) — skill · 3 installs
- [recipe-share-event-materials](https://affpapa.org/en/nevibecode/skills/recipe-share-event-materials.md) — skill · 29700 installs
- [blogwatcher](https://affpapa.org/en/nevibecode/skills/blogwatcher.md) — skill · 5400 installs
- [ego-browser](https://affpapa.org/en/nevibecode/skills/ego-browser.md) — skill · 12200 installs
- [composio](https://affpapa.org/en/nevibecode/skills/composio.md) — skill · 8100 installs
- [remote-browser](https://affpapa.org/en/nevibecode/skills/remote-browser.md) — skill · 4700 installs

From the same set: [aviz85/claude-skills-library](https://affpapa.org/en/nevibecode/by/aviz85/claude-skills-library.md) — 4 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
