Agent skill

Youtube Studio Batch Upload

by swyxio in swyxio/skills

Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files.

MITAuto-check: warningsProductivity & Automation

Install Youtube Studio Batch Upload

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add swyxio/skills --skill youtube-studio-batch-upload -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install swyxio/skills youtube-studio-batch-upload --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/swyxio/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/youtube-studio-batch-upload .claude/skills/youtube-studio-batch-upload && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
youtube-studio-batch-upload
GitHub stars
176
Token cost
~1.5k tokens
SKILL.md length
725 words
Files
4 (incl. scripts, references)
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files.

  • Works in 6 steps: Export or scrape the source table into… → Build a manifest and metadata JSON → Download source videos into… → …
  • An agent needs to download many submitted videos
  • SKILL.md covers Operating Rules, Workflow, Metadata Shape and UI Automation, plus 2 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Youtube Studio Batch Upload is an agent skill from swyxio/skills. Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files. Use when an agent needs to download many submitted videos, stage filenames, build YouTube titles/descriptions from table fields, upload through Chrome/Computer Use, set videos Unlisted, add a playlist, save each upload before moving on, track links, and report incomplete or blocked source rows.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/ui-js-snippets.md` and `scripts/youtube_batch_helper.py`).

It sits in Productivity & Automation, covering Desktop control. It works with YouTube, Airtable and Google Drive. The repository describes itself as: Agent skills for Claude Code and other AI agents. The licence is MIT.

When your agent uses it

  • An agent needs to download many submitted videos
  • Stage filenames
  • Build YouTube titles/descriptions from table fields
  • Upload through Chrome/Computer Use

Example prompts

  • “/youtube-studio-batch-upload”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Export or scrape the source table into CSV/TSV with at least: speaker name, talk title, talk description, video source URL, bio, company…
  2. Build a manifest and metadata JSON
  3. Download source videos into downloads/.../raw
  4. Stage upload files under a batch directory with final human-readable names
  5. Open YouTube Studio upload in Chrome, select as many staged files as practical, and then complete each upload dialog
  6. Record each YouTube link in a ledger and report

What it can do on your machine

Read from SKILL.md and the folder at commit 038ef34. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Youtube Studio Batch Upload loads about 1.5k tokens when it runs, and up to ~2.9k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 725 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:29
    icated downloads if permissions require Chrome cookies/session.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from swyxio/skills at commit 038ef34, republished under its MIT licence (© swyxio). 725 words, ~1,500 tokens.

Download SKILL.mdSave it as .claude/skills/youtube-studio-batch-upload/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
youtube-studio-batch-upload
description
Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files. Use when an agent needs to download many submitted videos, stage filenames, build YouTube titles/descriptions from table fields, upload through Chrome/Computer Use, set videos Unlisted, add a playlist, save each upload before moving on, track links, and report incomplete or blocked source rows.

YouTube Studio Batch Upload

Operating Rules

  • Use the browser/computer-use skill for live YouTube Studio or Airtable UI work. Call get_app_state before direct UI actions in a turn.
  • Treat upload as a batch waterfall: download/source recovery, filename staging, metadata staging, upload, per-video titling/playlist/visibility/save, verification, ledger.
  • Do not include source video URLs in YouTube descriptions. Strip Drive, Loom, WeTransfer, and source YouTube links from final descriptions unless the user explicitly asks to publish those links.
  • Use the full submitted talk abstract in the description by default; do not compress it to a teaser unless the user asks for short copy.
  • Do not publish internal Airtable fields such as Additional Notes, reviewer notes, source status, or operational comments unless the user explicitly marks them as public copy.
  • Always select the target playlist before advancing to visibility.
  • Always choose Unlisted and click Save before opening or editing the next upload.
  • If YouTube blocks saving because SD processing is not finished, wait on the modal and save after processing clears. Do not assume the draft is published.
  • Prefer batch file selection where the UI allows it. If selector controls fail, upload smaller batches or one file at a time, but keep download and metadata preparation batched.
  • Preserve a clear blocked list for rows like waitlisted, WIP, To provide, private/deleted links, or access-denied Drive files.

Workflow

  1. Export or scrape the source table into CSV/TSV with at least: speaker name, talk title, talk description, video source URL, bio, company, handles, LinkedIn/GitHub, and any public links. Treat notes/status fields as private unless told otherwise.
  2. Build a manifest and metadata JSON:
    • Run scripts/youtube_batch_helper.py build-metadata presenters.csv --out work/youtube_metadata.json.
    • Use --playlist "Playlist Name" and --skip-source-url unless the user says otherwise.
    • Inspect blocked rows and rows with placeholder source values before downloading.
  3. Download source videos into downloads/.../raw:
    • Drive: prefer yt-dlp or direct browser-authenticated downloads if permissions require Chrome cookies/session.
    • Loom: try yt-dlp; if it fails, inspect the page for signed HLS manifests and assemble with ffmpeg.
    • YouTube source videos: try yt-dlp with browser cookies or alternate player clients. Respect access and copyright limitations.
  4. Stage upload files under a batch directory with final human-readable names:
    • Talk Title - Speaker Name.mp4
    • Keep punctuation YouTube accepts; avoid filesystem-hostile characters.
  5. Open YouTube Studio upload in Chrome, select as many staged files as practical, and then complete each upload dialog:
    • Set title and description from metadata.
    • Select the playlist.
    • Advance through Video elements and Checks.
    • Select Unlisted.
    • Save and wait until the row appears as Unlisted / None or known restriction.
  6. Record each YouTube link in a ledger and report:
    • Uploaded count and new links.
    • Any restrictions, especially copyright.
    • Blocked/unavailable source rows with exact reason.
Show full SKILL.md (283 more words)Show less

Metadata Shape

Use this description layout unless the user gives a channel-specific template:

text
<Talk Description>

Speakers:
- <Name> (<Company>): <Bio>
  X/Twitter: <url-or-handle>
  LinkedIn: <url>
  GitHub: <url-or-handle>

Include the whole submitted talk description/abstract when it is suitable for public viewing. Include social media and company/project URLs entered by the speaker, but omit blank lines for missing fields. Do not include source video URLs or internal Additional Notes/reviewer fields.

Keep descriptions factual and avoid inventing missing affiliations. For incomplete presenter names, use available fields and web search if the user asked to fill missing public info.

UI Automation

Read references/ui-js-snippets.md when using Chrome DOM automation for YouTube Studio. These snippets cover setting contenteditable title/description boxes, selecting playlists, clicking through steps, saving unlisted, and verifying row state.

For Studio-only cleanup on existing videos, such as thumbnail replacement, schedule times, save-state recovery, or playlist fixes after upload, switch to the youtube-studio-computer-use skill. Keep this skill focused on source acquisition, metadata preparation, staged filenames, upload batching, and upload ledgers.

Use direct Computer Use clicks for file pickers and modal buttons when DOM automation cannot reach native UI. Use coordinates only after confirming the screenshot state.

Verification

  • Verify every uploaded row shows Unlisted after Save.
  • Verify source URL patterns are absent from descriptions using the helper audit or DOM readback.
  • Verify playlist selection during the upload modal; YouTube Studio's channel list does not always show playlist membership.
  • Check upload processing dialogs: Video upload complete is not enough if the dialog still says SD processing must finish before unlisted publication.

Helper Script

scripts/youtube_batch_helper.py provides:

  • build-metadata: convert Airtable/CSV rows into YouTube metadata JSON and a blocked-row report.
  • audit-descriptions: scan metadata JSON for accidental source URLs.
  • ledger: create or update a CSV ledger of uploaded links and statuses.

Run python3 scripts/youtube_batch_helper.py --help for command details.

© swyxio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in youtube-studio-batch-upload of swyxio/skills.

  • SKILL.md
  • agents/openai.yaml
  • references/ui-js-snippets.md
  • scripts/youtube_batch_helper.py

Open the folder on GitHubat commit 038ef34

Compare with similar skills

Youtube Studio Batch Upload next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Youtube Studio Batch Upload compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Youtube Studio Batch Upload this skillswyxio/skills176—~1.5kAutomated safety check: WarnMIT
Vision SkillsAnionex/agent-vision-toolkit1.2k—~4kAutomated safety check: PassMIT
Mac Computer UseTo3akaRin/mac-computer-use1.1k—~495Automated safety check: PassMIT
Crabbox Appsopenclaw/openclaw392k—~1.5kAutomated safety check: PassMIT
Agent Managementautonomous-ai/Physical-AI-Operating-System407—~1.7kAutomated safety check: PassApache-2.0
Computer Usebam-bam-2/solo-skills3671 repos~915Automated safety check: PassMIT

Similar skills

  • Vision Skills

    Anionex/agent-vision-toolkit

    Local vision CLIs: glance (describe/ask/OCR an image), ground (locate a target, pixel box), detect (element inventory), trace (image to SVG geometry), crop (cut a pixel box to a file), and…

    1.2k GitHub stars~4k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Mac Computer Use

    To3akaRin/mac-computer-use

    操作 macOS 桌面应用,探测窗口和自动化接口、截图、读取或修改辅助功能元素、执行鼠标键盘动作,以及通过 CDP 操作内嵌 Chromium 页面。适用于桌面应用自动化与界面验收;普通网页任务优先使用已有浏览器工具。

    1.1k GitHub stars~495 tokensUpdated 16 days ago
    Productivity & AutomationAuto-check passed
  • Crabbox Apps

    openclaw/openclaw

    A skill your agent uses when asked to open, run, test, or show an app in Crabbox, including native desktops, web previews, and computer use on a temporary machine.

    392k GitHub stars~1.5k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Agent Management

    autonomous-ai/Physical-AI-Operating-System

    Legacy Autonomous Buddy control for explicitly requested Buddy coding sessions.

    407 GitHub stars~1.7k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Computer Use

    bam-bam-2/solo-skills

    Use Orca's computer-use CLI to inspect and operate local desktop app windows through accessibility trees, screenshots, and safe UI actions.

    367 GitHub starsUsed in 1 repo~915 tokens
    Productivity & AutomationAuto-check passed
  • Cloud Computer Use

    davidondrej/cloudroom-core

    See and control desktop apps on this Cloud sandbox’s virtual Linux screen with cloudroom computer-use: launch GUI apps you build or install, read their UI, click, type, and take screenshots.

    282 GitHub stars~881 tokensUpdated yesterday
    Productivity & AutomationAuto-check: notes

More from swyxio/skills

All 89 skills in this repo
  • Programmatic Agents

    swyxio/skills

    Run a selected coding-agent CLI programmatically, with latency, error, usage, cost, and trace logging.

    176 GitHub stars~2.2k tokensUpdated 5 days ago
    Auto-check passed
  • Design, implement, audit, or refresh protected username and handle namespaces for public products.

    176 GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • New Mac Setup

    swyxio/skills

    Fully automated new Mac setup for fullstack web developers and AI engineers.

    176 GitHub stars~4.3k tokensUpdated 5 days ago
    Auto-check passed
  • Youtube API

    swyxio/skills

    Manage YouTube videos programmatically via the YouTube Data API v3 — upload video files, upload custom thumbnails, update video metadata (titles, descriptions, tags), and query video/channel info…

    176 GitHub stars~2.2k tokensUpdated 5 days ago
    Auto-check passed
  • Reconstruct and visually analyze paired agent, game, or policy trajectories to determine whether changed actions produced their intended effects.

    176 GitHub stars~1.8k tokensUpdated 5 days ago
    Auto-check passed
  • Forge

    swyxio/skills

    Operate or diagnose SmolForge repositories and Forge Deploy/Sites when the task requires Forge-specific CLI, authentication, manifest, or release behavior on forge.smol.ai or .sites.smol.ai.

    176 GitHub stars~1.3k tokensUpdated 5 days ago
    Auto-check passed

Questions about Youtube Studio Batch Upload

What does Youtube Studio Batch Upload do?

Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files. Youtube Studio Batch Upload is an agent skill from swyxio/skills. Batch YouTube Studio upload workflow for videos sourced from Airtable, Google Drive, Loom, YouTube, or local files.

When should I use Youtube Studio Batch Upload?

Youtube Studio Batch Upload fits situations like: an agent needs to download many submitted videos; stage filenames; build YouTube titles/descriptions from table fields; upload through Chrome/Computer Use.

How do I install Youtube Studio Batch Upload in Claude Code?

Run `npx skills add swyxio/skills --skill youtube-studio-batch-upload -a claude-code`. Or copy the skill folder (youtube-studio-batch-upload in swyxio/skills) into .claude/skills/youtube-studio-batch-upload in your project. Claude Code loads it when a task matches its description.

How do I install Youtube Studio Batch Upload in Codex?

Run `npx skills add swyxio/skills --skill youtube-studio-batch-upload -a codex`. Or copy the skill folder (youtube-studio-batch-upload in swyxio/skills) into .agents/skills/youtube-studio-batch-upload in your project. Codex loads it when a task matches its description.

Can I use Youtube Studio Batch Upload in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add swyxio/skills --skill youtube-studio-batch-upload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/youtube-studio-batch-upload, .gemini/skills/youtube-studio-batch-upload, .github/skills/youtube-studio-batch-upload and .opencode/skills/youtube-studio-batch-upload in your project.

What does Youtube Studio Batch Upload need to run?

Going by SKILL.md and its folder, Youtube Studio Batch Upload needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Youtube Studio Batch Upload access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Youtube Studio Batch Upload safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Youtube Studio Batch Upload use?

Youtube Studio Batch Upload is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Youtube Studio Batch Upload use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Youtube Studio Batch Upload?

Skills that share tags, products or a category with Youtube Studio Batch Upload: Vision Skills (Anionex/agent-vision-toolkit, 1.2k stars), Mac Computer Use (To3akaRin/mac-computer-use, 1.1k stars), Crabbox Apps (openclaw/openclaw, 392k stars) and Agent Management (autonomous-ai/Physical-AI-Operating-System, 407 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Youtube Studio Batch Upload?

swyxio (a GitHub user) maintains it in swyxio/skills, which has 176 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 5, 2026.

Source: swyxio/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.