Skill: openwaygate/youtube-video (version 0.10.7-dev)

--- name: youtube-video description: "Manage YouTube videos. Use this skill to list, upload, update, delete, get rating, or report videos. Useful when working with YouTube video — provides commands to delete, getRating, insert, list, rate, reportAbuse, and update video via the yutu CLI. Includes setup and installation instructions for first-time users. Triggers: delete videos, delete video, delete my video, get video ratings, getRating video, getRating my video, upload a video, insert video, insert my video, list video information, list video, list my video, rate a video, rate video, rate my video, report abuse on a video, reportAbuse video, reportAbuse my video, update a video, update video, update my video" metadata: openclaw: requires: env: - YUTU_CREDENTIAL - YUTU_CACHE_TOKEN bins: - yutu config: - client_secret.json - youtube.token.json primaryEnv: YUTU_CREDENTIAL emoji: "\U0001F3AC\U0001F430" homepage: https://github.com/eat-pray-ai/yutu install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] --- # YouTube Video Manage YouTube videos. Use this skill to list, upload, update, delete, get rating, or report videos. ## Before You Begin yutu requires Google Cloud Platform OAuth credentials and a cached token to access the YouTube API. If you haven't set up yutu yet, read the [setup guide](references/setup.md) first. ## Operations Read the linked reference for full flag details and examples. | Operation | Description | Reference | |-----------|-------------|----------| | delete | Delete videos | [details](references/video-delete.md) | | getRating | Get video ratings | [details](references/video-getRating.md) | | insert | Upload a video | [details](references/video-insert.md) | | list | List video information | [details](references/video-list.md) | | rate | Rate a video | [details](references/video-rate.md) | | reportAbuse | Report abuse on a video | [details](references/video-reportAbuse.md) | | update | Update a video | [details](references/video-update.md) | ## Quick Start ```bash # Show all video commands yutu video --help # List video yutu video list ```

path: references/setup.md
content: <!-- Keep in sync with README.md Prerequisites and Installation sections. -->

# Yutu Setup Guide

Before using any yutu skill, you need to install `yutu` and configure YouTube API credentials.

## Prerequisites

An account on [Google Cloud Platform](https://console.cloud.google.com/) is required. Set up the following:

1. **Create a GCP Project** and enable these APIs under `APIs & Services -> Enable APIs and services`:
   - [YouTube Data API v3](https://console.cloud.google.com/apis/api/youtube.googleapis.com/overview) (Required)
   - [YouTube Analytics API](https://console.cloud.google.com/apis/api/youtubeanalytics.googleapis.com/overview) (Optional)
   - [YouTube Reporting API](https://console.cloud.google.com/apis/api/youtubereporting.googleapis.com/overview) (Optional)

2. **Create OAuth credentials**:
   - Go to `APIs & Services -> OAuth consent screen`, create a consent screen with yourself as a test user
   - Go to `Credentials -> Create Credentials -> OAuth Client ID`, select `Web Application`
   - Add `http://localhost:8216` as an authorized redirect URI
   - Download the credential file and save it as `client_secret.json`

3. **Authenticate**:

   ```bash
   yutu auth --credential client_secret.json
   ```

   A browser window will open for you to grant YouTube access. After granting permission, a token is saved to `youtube.token.json`.

## Installation

Install `yutu` using one of these methods:


```bash
# Node.js (all platforms)
npm i -g @eat-pray-ai/yutu

# macOS
brew install yutu

# Linux
brew install yutu

# Windows
winget install yutu

# Gopher
go install github.com/eat-pray-ai/yutu@latest
```

### Other platforms

Download a prebuilt binary from the [releases page](https://github.com/eat-pray-ai/yutu/releases/latest) and place it in your PATH.

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `YUTU_CREDENTIAL` | Path, base64, or JSON of OAuth client secret | `client_secret.json` |
| `YUTU_CACHE_TOKEN` | Path, base64, or JSON of cached OAuth token | `youtube.token.json` |
| `YUTU_ROOT` | Root directory for file resolution | Current working directory |
| `YUTU_LOG_LEVEL` | Log level: `DEBUG`, `INFO`, `WARN`, `ERROR` | `INFO` |

For more details, see the [yutu README](https://github.com/eat-pray-ai/yutu#readme).


path: references/video-delete.md
content: # Video Delete

Delete videos. Use this skill to delete videos by IDs.

## Usage

```bash
yutu video delete [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--ids` | `-i` | Yes | IDs of the videos to delete |

## Examples

```bash
# Delete a video by ID
yutu video delete --ids dQw4w9WgXcQ
# Delete multiple videos
yutu video delete --ids dQw4w9WgXcQ,abc123
```


path: references/video-getRating.md
content: # Video GetRating

Get video ratings. Use this skill to get video ratings by IDs.

## Usage

```bash
yutu video getRating [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--ids` | `-i` | Yes | IDs of the videos to get the rating for |
| `--jsonpath` | `-j` |  | JSONPath expression to filter the output |
| `--onBehalfOfContentOwner` | `-b` |  | ID of the content owner, for YouTube content partners |
| `--output` | `-o` |  | json\|yaml\|table |

## Examples

```bash
# Get rating of a video
yutu video getRating --ids dQw4w9WgXcQ
# Get ratings of multiple videos in JSON format
yutu video getRating --ids dQw4w9WgXcQ,abc123 --output json
```


path: references/video-insert.md
content: # Video Insert

Upload a video. Use this skill to upload a video.

## Usage

```bash
yutu video insert [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--autoLevels` | `-A` |  | Should auto-levels be applied to the upload (default true) |
| `--categoryId` | `-g` | Yes | Category of the video |
| `--channelId` | `-c` |  | Channel id of the video |
| `--description` | `-d` |  | Description of the video |
| `--embeddable` | `-E` |  | Whether the video is embeddable (default true) |
| `--file` | `-f` | Yes | Path to the video file |
| `--forKids` | `-K` |  | Whether the video is for kids |
| `--jsonPath` | `-j` |  | JSONPath expression to filter the output |
| `--language` | `-l` |  | Language of the video |
| `--license` | `-L` |  | youtube\|creativeCommon (default "youtube") |
| `--notifySubscribers` | `-N` |  | Notify the channel subscribers about the new video (default true) |
| `--onBehalfOfContentOwner` | `-b` |  | ID of the content owner, for YouTube content partners |
| `--onBehalfOfContentOwnerChannel` | `-B` |  | YouTube channel ID linked to the content owner |
| `--output` | `-o` |  | json\|yaml\|silent |
| `--playlistId` | `-y` |  | Playlist id of the video |
| `--privacy` | `-p` | Yes | public\|private\|unlisted |
| `--publicStatsViewable` | `-P` |  | Whether the extended video statistics can be viewed by everyone |
| `--publishAt` | `-U` |  | Datetime when the video is scheduled to publish |
| `--stabilize` | `-S` |  | Should stabilize be applied to the upload (default true) |
| `--tags` | `-a` |  | Comma separated tags |
| `--thumbnail` | `-u` |  | Path to the thumbnail file |
| `--title` | `-t` |  | Title of the video |

## Examples

```bash
# Upload a public video
yutu video insert --file video.mp4 --title 'My Video' --categoryId 22 --privacy public
# Upload a private video with tags
yutu video insert --file video.mp4 --title 'Tutorial' --categoryId 27 --privacy private --tags 'go,tutorial'
# Upload an unlisted video with custom thumbnail
yutu video insert --file video.mp4 --title 'Music Video' --categoryId 10 --privacy unlisted --thumbnail cover.jpg
```


path: references/video-list.md
content: # Video List

List video information. Use this skill to list video information.

## Usage

```bash
yutu video list [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--chart` | `-c` |  | chartUnspecified\|mostPopular |
| `--hl` | `-l` |  | Specifies the localization language |
| `--ids` | `-i` |  | Return videos with the given ids |
| `--jsonpath` | `-j` |  | JSONPath expression to filter the output |
| `--locale` | `-L` |  | Locale of the video metadata to return |
| `--maxHeight` | `-H` |  | Max height of the embedded player in pixels |
| `--maxResults` | `-n` |  | The maximum number of items that should be returned, 0 for no limit (default 5) |
| `--maxWidth` | `-W` |  | Max width of the embedded player in pixels |
| `--myRating` | `-R` |  | Return videos liked/disliked by the authenticated user |
| `--onBehalfOfContentOwner` | `-b` |  | ID of the content owner, for YouTube content partners |
| `--output` | `-o` |  | json\|yaml\|table (default "table") |
| `--parts` | `-p` |  | Comma separated parts (default [id,snippet,status,statistics]) |
| `--regionCode` | `-r` |  | Specific to the specified region |
| `--videoCategoryId` | `-g` |  | Category of the video |

## Examples

```bash
# List a video by ID
yutu video list --ids IBju0NwjQRc
# List multiple videos in JSON format
yutu video list --ids IBju0NwjQRc,wZ9z3FUuNvQ --output json
# List most popular videos by region
yutu video list --chart mostPopular --regionCode US --maxResults 10
# List my liked videos
yutu video list --myRating like --output yaml
```


path: references/video-rate.md
content: # Video Rate

Rate a video. Use this skill to rate a video.

## Usage

```bash
yutu video rate [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--ids` | `-i` | Yes | IDs of the videos to rate |
| `--rating` | `-r` | Yes | like\|dislike\|none |

## Examples

```bash
# Like a video
yutu video rate --ids dQw4w9WgXcQ --rating like
# Dislike multiple videos
yutu video rate --ids dQw4w9WgXcQ,abc123 --rating dislike
# Remove rating from a video
yutu video rate --ids dQw4w9WgXcQ --rating none
```


path: references/video-reportAbuse.md
content: # Video ReportAbuse

Report abuse on a video. Use this skill to report abuse on a video.

## Usage

```bash
yutu video reportAbuse [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--comments` | `-c` |  | Additional comments regarding the abuse report |
| `--ids` | `-i` | Yes | IDs of the videos to report abuse on |
| `--language` | `-l` |  | Language that the content was viewed in |
| `--onBehalfOfContentOwner` | `-b` |  | ID of the content owner, for YouTube content partners |
| `--reasonId` | `-r` | Yes | ID of the reason for reporting abuse |
| `--secondaryReasonId` | `-s` |  | ID of the secondary reason for reporting abuse |

## Examples

```bash
# Report abuse on a video
yutu video reportAbuse --ids dQw4w9WgXcQ --reasonId V
# Report abuse with secondary reason and language
yutu video reportAbuse --ids dQw4w9WgXcQ --reasonId V --secondaryReasonId V1 --language en
# Report abuse with comments
yutu video reportAbuse --ids dQw4w9WgXcQ --reasonId N --comments 'Spam content'
```


path: references/video-update.md
content: # Video Update

Update a video. Use this skill to update a video.

## Usage

```bash
yutu video update [flags]
```

## Flags

| Flag | Shorthand | Required | Description |
|------|-----------|----------|-------------|
| `--categoryId` | `-g` |  | Category of the video |
| `--description` | `-d` |  | Description of the video |
| `--embeddable` | `-E` |  | Whether the video is embeddable (default true) |
| `--id` | `-i` | Yes | ID of the video to update |
| `--jsonPath` | `-j` |  | JSONPath expression to filter the output |
| `--language` | `-l` |  | Language of the video |
| `--license` | `-L` |  | youtube\|creativeCommon (default "youtube") |
| `--output` | `-o` |  | json\|yaml\|silent |
| `--playlistId` | `-y` |  | Playlist id of the video |
| `--privacy` | `-p` |  | public\|private\|unlisted |
| `--tags` | `-a` |  | Comma separated tags |
| `--thumbnail` | `-u` |  | Path to the thumbnail file |
| `--title` | `-t` |  | Title of the video |

## Examples

```bash
# Update video title
yutu video update --id dQw4w9WgXcQ --title 'New Title'
# Update video description and privacy
yutu video update --id dQw4w9WgXcQ --description 'Updated description' --privacy public
# Update video tags and category
yutu video update --id dQw4w9WgXcQ --tags 'music,pop,2024' --categoryId 10
```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)