agentsclimarketplace

Youtube

Skill dortort/skills/skills/youtube

Reusable agent skills for AI tools

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.

What its author says it does

Copied from the file, not written here

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".

SKILL.md

4.9 KB, 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.

Keep looking

Skills are one crate of 328,083. 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.