AgentSkillsCN

zoom-to-youtube

当用户要求“将 Zoom 录像上传至 YouTube”“发布 Zoom 视频”“下载并上传录制文件”,或希望完整运行从 Zoom 到 YouTube 的全流程时,应使用此技能。该技能会协调 Zoom 下载、YouTube 发布以及 YouTube 封面图等子技能,并在各阶段之间设置检查点,确保流程顺畅、衔接无误。

SKILL.md
--- frontmatter
name: zoom-to-youtube
description: >
  This skill should be used when the user asks to "upload Zoom recordings to YouTube",
  "publish Zoom videos", "download and upload recordings", or wants to run the full
  Zoom-to-YouTube pipeline. It orchestrates the zoom-download, youtube-publish, and
  youtube-thumbnails sub-skills with checkpoint stages between each phase.
version: 0.1.0

Zoom Cloud Recordings → YouTube Pipeline

Overview

End-to-end workflow to download Zoom cloud recordings, upload them to YouTube with proper metadata, and generate custom thumbnails. This is an orchestrator skill — each stage is handled by a focused sub-skill that can also be used independently.

The pipeline has checkpoint stages between each action phase. At each checkpoint, gather context, present a summary to the user, and get confirmation before proceeding. This catches mismatches, duplicates, and edge cases early.


Stage 0: Pre-Flight Scan

Goal: Understand the current state of both Zoom and YouTube before doing anything.

0a. Scan Zoom Recordings

  • Navigate to zoom.us/recording (log in via Google SSO if needed)
  • List all recent recordings: meeting name, date, duration
  • Note which have "Shared screen with gallery view" available vs only "Gallery view"

0b. Scan YouTube Channel Content

  • Navigate to YouTube Studio → Content (Videos tab)
  • Verify you're on the correct channel — check the channel name in the sidebar
  • List recent uploads: title, date, status (Published/Unlisted/Draft)

0c. Cross-Reference & Present Plan

Compare the two lists and identify:

  • New recordings on Zoom that don't yet exist on YouTube (match by date and meeting name)
  • Already uploaded recordings (skip these)
  • Unusual situations to flag:
    • Recordings with no "Shared screen with gallery view" (host didn't share screen?)
    • Very short recordings (<10 min — test calls?)
    • Very long recordings (>2 hrs — may need splitting or was left running?)
    • Multiple recordings for the same meeting (Zoom split it?)
    • Recordings from unknown/unexpected meeting names
    • Draft or Private videos on YouTube that might be incomplete uploads from a previous attempt

→ CHECKPOINT: Present the user a table like this and ask for confirmation:

code
Zoom recordings found:
  1. AI in Action Weekly Jam! — 7 Feb 2026 — 53:46 — NEW, will download
  2. AI in Action Weekly Jam! — 31 Jan 2026 — 58:45 — Already on YouTube, skip
  3. Johan Duramy and swyx — 12 Feb 2026 — 56:22 — NEW (Paper Club), will download

Flags:
  - None

Proceed with downloading #1 and #3?

Wait for user confirmation. They may say "skip #3" or "also grab the Jan 31 one" etc.


Stage 1: Download from Zoom

Sub-skill: zoom-download

Only download the recordings confirmed in Stage 0. For each:

  • Download "Shared screen with gallery view" only
  • Verify filename contains _gallery_ (not _gvo_)
  • Extract frames with ffmpeg for content analysis

→ CHECKPOINT: Present download results and frame analysis:

code
Downloaded 2 recordings:
  1. Feb 7 — SpaceMolt demo by Ian Langworth (statico)
     - 53:46, screen share shows space game UI
     - Participants: Ian, swyx, Sebastian, Ted
     - Type: AI in Action (weekly jam demo)

  2. Feb 12 — SDPO paper reading by Ted Kyi
     - 56:22, screen share shows arxiv paper
     - Paper: Self-Distillation Preference Optimization
     - Participants: Ted, Johan, swyx
     - Type: Paper Club

Proposed titles:
  1. "SpaceMolt - AI Agents in Multiplayer Space Games: AI in Action 7 Feb 2026"
  2. "RL via Self-Distillation (SDPO) Paper Reading: AI in Action 12 Feb 2026"

Proposed playlists:
  1. → AI in Action
  2. → Paper Club

Any changes to titles or classifications?

Wait for user feedback. They might correct a presenter name, adjust the title wording, or reclassify a video.


Stage 2: Upload & Publish on YouTube

Sub-skill: youtube-publish

  • User manually uploads the downloaded files to YouTube Studio (browser file picker limitation)
  • For each video, set:
    • Title (as confirmed in Stage 1 checkpoint)
    • Description with timestamps
    • Playlist assignment
    • Visibility: Unlisted, publish immediately

→ CHECKPOINT: Present published video summary:

code
Published 2 videos:
  1. "SpaceMolt - AI Agents in Multiplayer Space Games: AI in Action 7 Feb 2026"
     - URL: https://youtu.be/XXXXX
     - Playlist: AI in Action
     - Status: Unlisted ✓

  2. "RL via Self-Distillation (SDPO) Paper Reading: AI in Action 12 Feb 2026"
     - URL: https://youtu.be/YYYYY
     - Playlist: Paper Club
     - Status: Unlisted ✓

Ready to generate thumbnails?

Stage 3: Generate & Set Thumbnails

Sub-skill: youtube-thumbnails

  • Open Gemini, enable Create Images in Pro mode
  • Generate one thumbnail per video using content-appropriate prompts
  • Compress all to under 2MB
  • Upload to YouTube Studio

→ CHECKPOINT: Confirm thumbnails are set:

code
Thumbnails set:
  1. SpaceMolt — space-themed, neon ships & asteroids ✓
  2. SDPO — academic brain/neural net with formulas ✓

All done! Anything to adjust?

Stage 4: Cleanup

  • Ask user if they want to delete the Zoom cloud recordings that were successfully uploaded
  • User must perform the actual deletion (permanent deletion is a prohibited action)
  • Optionally delete local downloaded .mp4 files from ~/Downloads to free space

Sub-Skills

SkillUse Standalone When
zoom-downloadJust need to grab recordings, no YouTube work
youtube-publishVideos already downloaded, just need to upload & title
youtube-thumbnailsVideos already published, just need thumbnails

Common Pitfalls

  1. Wrong Zoom file: _gvo_ = gallery view only (no screen share). Always use _gallery_.
  2. Wrong YouTube channel: Studio may default to your primary channel. Switch accounts if needed.
  3. File upload limitation: Browser security prevents programmatic file selection. User must pick files manually.
  4. Thumbnail too large: Gemini Pro outputs ~3-4MB. Compress with convert -resize 1280x720 -quality 85.
  5. Left as Draft: Always click through to Visibility → Unlisted → Save. Don't stop at Details.
  6. Skipping checkpoints: Don't skip the confirmation stages. A wrong title or missed duplicate is much harder to fix after publishing.