agentsclimarketplace

Youtube

Skill dortort/skills/skills/youtube

Manages YouTube channels and videos using the YouTube Data API v3. Handles OAuth2 authentication, video uploads with resumable transfer, metadata updates, thumbnail setting, playlist management, comment moderation, channel-wide search, and bulk CSV workflows. Use when the user wants to upload a video, manage their YouTube channel, update video titles or descriptions, create or manage playlists, list channel videos, search their content, export a video catalogue, or bulk-edit metadata. Trigger phrases include "youtube", "upload video", "channel manager", "my videos", "YouTube playlist", "YouTube API", "update metadata".From its SKILL.md

Install
npx -y skills add dortort/skills --skill youtube

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.9 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

YouTube — Creator & Channel Manager

Manages YouTube channels and videos via the YouTube Data API v3, using the scripts/yt.py helper and the official google-api-python-client SDK. All operations are authenticated with OAuth2 and credentials are cached after the first authorisation.

User request: $ARGUMENTS


Step 1 — Check prerequisites

Run this first and act on the result:

python3 scripts/yt.py whoami 2>&1
  • Channel name printed → authenticated, go to Step 2
  • "Missing dependencies" → run bash scripts/setup.sh, then re-check
  • "No OAuth credentials found" → guide the user through one-time setup below

One-time setup (only when needed)

Install Python dependencies:

bash scripts/setup.sh

Create Google Cloud credentials (manual — guide the user):

  1. Go to https://console.cloud.google.com and create or select a project
  2. APIs & Services → Library → search for YouTube Data API v3 → Enable
  3. APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID → Desktop app
  4. Download JSON → save as ~/.youtube-skill/client_secrets.json

Authorise (opens a browser window):

python3 scripts/yt.py auth

Credentials are cached at ~/.youtube-skill/credentials.json and silently refreshed on all subsequent runs. To force a fresh login: rm ~/.youtube-skill/credentials.json && python3 scripts/yt.py auth.


Step 2 — Parse $ARGUMENTS and run the right command

Interpret the user's intent and run the matching yt.py command. See reference.md for the full flag reference.

User intentCommand
Show channel / who am Ipython3 scripts/yt.py whoami
List videospython3 scripts/yt.py videos list [--limit N] [--status public|private|unlisted]
Get video detailspython3 scripts/yt.py videos get <VIDEO_ID>
Upload a videopython3 scripts/yt.py videos upload <FILE> --title "..." --privacy private
Update title / description / tags / categorypython3 scripts/yt.py videos update <VIDEO_ID> --title "..." [--description "..."] [--tags "a,b"]
Change privacy / publish nowpython3 scripts/yt.py videos update <VIDEO_ID> --privacy public
Schedule publishpython3 scripts/yt.py videos update <VIDEO_ID> --publish-at "2025-12-31T18:00:00Z"
Set thumbnailpython3 scripts/yt.py videos thumbnail <VIDEO_ID> <IMAGE>
Delete a videopython3 scripts/yt.py videos delete <VIDEO_ID>
List playlistspython3 scripts/yt.py playlists list
Create playlistpython3 scripts/yt.py playlists create "Title" [--privacy public]
List videos in a playlistpython3 scripts/yt.py playlists items <PLAYLIST_ID>
Add video to playlistpython3 scripts/yt.py playlists add <PLAYLIST_ID> <VIDEO_ID>
Remove video from playlistpython3 scripts/yt.py playlists remove <PLAYLIST_ID> <VIDEO_ID>
Delete playlistpython3 scripts/yt.py playlists delete <PLAYLIST_ID>
List commentspython3 scripts/yt.py comments list <VIDEO_ID> [--limit N] [--order relevance|time]
Reply to a commentpython3 scripts/yt.py comments reply <COMMENT_THREAD_ID> "reply text"
Search channel contentpython3 scripts/yt.py search "query" [--type video|playlist]
Export full cataloguepython3 scripts/yt.py export > channel.csv
Bulk-update from CSVpython3 scripts/yt.py bulk-update updates.csv

Safety defaults — always apply:

  • Uploads default to --privacy private. Never upload as public unless the user explicitly asks.
  • Do not add --yes to delete commands. Always let the script prompt for confirmation.
  • For comments reply, confirm the reply text with the user before posting.

Step 3 — Report results and suggest next steps

After each command:

  1. Show the output (video ID, URL, status).
  2. Offer logical next steps. Examples:
    • After upload → set thumbnail, add to playlist, schedule or publish
    • After export → offer to open in spreadsheet or run bulk-update
    • After creating a playlist → offer to add videos
  3. If an API error occurs, explain it and suggest the fix. See the error table in reference.md.

What ships with it: 3 files

48.6 KB alongside SKILL.md, 2 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.