ytb-storage: Google Cloud Storage & YouTube Upload Automation for Claude Code

As an indie developer building YouTube automation tools with Claude Code, I needed a reliable way to handle large video files and multi-channel uploads without reinventing the wheel. That's where ytb-storage comes in — a free, open-source skill pack that provides production-ready Google Cloud Storage integration and YouTube upload automation.

What ytb-storage Solves

Before ytb-storage, I was manually managing video storage across multiple projects (Books, News, Poetry) and struggling with YouTube's complex OAuth flow for multi-channel uploads. The pain points were:

GCS Storage Service: Reliable Video Management

The storage-gcs skill provides a robust Google Cloud Storage service that handles all your video storage needs:

The service is implemented in TypeScript as a singleton class (GoogleCloudStorageService.ts) and requires only the @google-cloud/storage SDK and proper GCP authentication.

YouTube Upload Service: Multi-Channel Automation

The storage-youtube-upload skill solves the most frustrating part of YouTube automation — managing multiple channel OAuth tokens. Here's how it works:

The implementation uses googleapis for YouTube Data API v3 and @google-cloud/secret-manager for secure token storage.

Getting Started in 5 Minutes

You can install ytb-storage in Claude Code with just two commands:

/plugin marketplace add https://github.com/clickaround/marketplace
/plugin install ytb-storage@clickaround

For full setup, you'll need:

  1. Create a GCP project and enable the Storage and Secret Manager APIs
  2. Set up OAuth 2.0 credentials for YouTube Data API
  3. Create your GCS bucket (asia-northeast3 recommended for Seoul)
  4. Configure environment variables: GCS_BUCKET_NAME, YOUTUBE_CLIENT_SECRET_PATH
  5. Store your YouTube OAuth tokens in Secret Manager as YOUTUBE_DATA

Real-World Usage Examples

Here's how ytb-storage integrates into real workflows:

Video Processing Pipeline:

// 1. Process video locally
// 2. Upload to GCS
await gcsService.uploadVideo("/tmp/output.mp4", "videos/2026-05-14-main.mp4");

// 3. Generate signed URL for preview
const url = await gcsService.generateSignedUrl("videos/2026-05-14-main.mp4");

// 4. Upload to YouTube
await youtubeUploader.uploadVideo(
  "2026-05-14-main",
  "main-channel",
  { title: "My Latest Video", description: "...", tags: ["ai", "automation"] },
  true
);

Font Management for Cloud Run:

// Download fonts during Cloud Run startup
await gcsService.downloadFonts(["NanumGothic.ttf", "Roboto-Regular.ttf"], "/app/fonts/");

Why This Saved Me 12+ Hours Per Week

Before ytb-storage, I spent hours each week:

With ytb-storage, these tasks are now automated and reliable. The clean TypeScript interfaces make integration straightforward, and the MIT license means I can modify it freely for my specific needs.