Video Caption Generator

Video caption generator

by ericosiu · MIT license · ★ 3,615 on GitHub

Video caption generator cover

name: video-caption-generator

---

## Preamble (runs on skill start)

```bash
# Version check (silent if up to date)
python3 telemetry/version_check.py 2>/dev/null || true

# Telemetry opt-in (first run only, then remembers your choice)
python3 telemetry/telemetry_init.py 2>/dev/null || true
```

> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.

---
name: video-caption-generator
description: >
  Transcribe short videos from a Google Drive folder, deduplicate by content,

Overview

name: video-caption-generator description: > Transcribe short videos from a Google Drive folder, deduplicate by content, and generate social captions + YouTube/Facebook titles. Use when new video clips are dropped into a Drive folder and you need transcript, caption, and title for each unique clip. Trigger phrases: "process videos in drive", "transcribe new clips", "caption these videos", "generate titles for these clips". ---

Manual install (npx, ZIP)
Claude Codenpx skills add ericosiu/ai-marketing-skills --skill video-caption-generator -g -a claude-code
Claude Code (degit)npx degit ericosiu/ai-marketing-skills/video-caption-generator#main ~/.claude/skills/video-caption-generator
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md2.9 KB
Read SKILL.md here
ericosiu/main1 file shown
SKILL.md
Show the full text86 lines

name: video-caption-generator description: > Transcribe short videos from a Google Drive folder, deduplicate by content, and generate social captions + YouTube/Facebook titles. Use when new video clips are dropped into a Drive folder and you need transcript, caption, and title for each unique clip. Trigger phrases: "process videos in drive", "transcribe new clips", "caption these videos", "generate titles for these clips".

Video Caption Generator

Processes new MP4s from a Google Drive folder: transcribes, deduplicates, generates captions + titles.

Drive Folder Setup

Configure your Google Drive folder IDs before first use:

Folder Purpose
Main / To Schedule New clips are dropped here for processing
Scheduled Already posted/scheduled clips (moved after publishing)
A/B Title variants for later posting

Set your folder IDs in folder-map.json or pass them directly via --folder-id.

Quick Run

python3 skills/video-caption-generator/scripts/process_videos.py \
  --folder-id YOUR_FOLDER_ID

Processed video IDs are logged to processed_ids.json so already-seen videos are skipped on future runs.

A/B Variant Handling

Videos with identical transcripts but different filenames (e.g., 0411.mp4, 0411(1).mp4) are A/B title variants — same audio, different on-screen title. The script processes ALL variants (no dedup skipping) and tags them as A/B variants in the output.

Output Format

For each unique new clip, output:

*<filename>*
📝 *Transcript:* <raw spoken words>
🎬 *Caption:* <social-friendly 2-4 sentence caption>
📺 *YT/FB Title:* <punchy title under 60 chars>

Caption + Title Style Guide

  • Caption: First person, conversational, no hashtags, 2-4 sentences. Hook first, insight second.
  • Title: Curiosity-driven, under 60 chars, no "How I..." unless earned. Lead with the tension or number.

Dependencies

  • whisper (local installation, model: turbo)
  • Google Drive CLI or SDK for listing/downloading files
  • Anthropic API key (set via ANTHROPIC_API_KEY environment variable)

Configuration

  1. Set ANTHROPIC_API_KEY in your environment
  2. Update GWS_GATEWAY in scripts/process_videos.py to point to your Google Drive CLI
  3. Update WHISPER_BIN if Whisper is installed at a different path

Adding New Folders

Pass --folder-id <ID> for different folders. Each folder uses the same shared processed_ids.json log (Drive IDs are globally unique so there's no collision).

1---
2 
3## Preamble (runs on skill start)
4 
5```bash
6# Version check (silent if up to date)
7python3 telemetry/version_check.py 2>/dev/null || true
8 
9# Telemetry opt-in (first run only, then remembers your choice)
10python3 telemetry/telemetry_init.py 2>/dev/null || true
11```
12 
13> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
14 
15---
16name: video-caption-generator
17description: >
18 Transcribe short videos from a Google Drive folder, deduplicate by content,
19 and generate social captions + YouTube/Facebook titles. Use when new video
20 clips are dropped into a Drive folder and you need transcript, caption, and
21 title for each unique clip.
22 Trigger phrases: "process videos in drive", "transcribe new clips",
23 "caption these videos", "generate titles for these clips".
24---
25 
26# Video Caption Generator
27 
28Processes new MP4s from a Google Drive folder: transcribes, deduplicates, generates captions + titles.
29 
30## Drive Folder Setup
31 
32Configure your Google Drive folder IDs before first use:
33 
34| Folder | Purpose |
35|--------|---------|
36| Main / To Schedule | New clips are dropped here for processing |
37| Scheduled | Already posted/scheduled clips (moved after publishing) |
38| A/B | Title variants for later posting |
39 
40Set your folder IDs in `folder-map.json` or pass them directly via `--folder-id`.
41 
42## Quick Run
43 
44```bash
45python3 skills/video-caption-generator/scripts/process_videos.py \
46 --folder-id YOUR_FOLDER_ID
47```
48 
49Processed video IDs are logged to `processed_ids.json` so already-seen videos are skipped on future runs.
50 
51## A/B Variant Handling
52 
53Videos with identical transcripts but different filenames (e.g., `0411.mp4`, `0411(1).mp4`) are A/B title variants — same audio, different on-screen title. The script processes ALL variants (no dedup skipping) and tags them as A/B variants in the output.
54 
55## Output Format
56 
57For each unique new clip, output:
58 
59```
60*<filename>*
61📝 *Transcript:* <raw spoken words>
62🎬 *Caption:* <social-friendly 2-4 sentence caption>
63📺 *YT/FB Title:* <punchy title under 60 chars>
64```
65 
66## Caption + Title Style Guide
67 
68- **Caption:** First person, conversational, no hashtags, 2-4 sentences. Hook first, insight second.
69- **Title:** Curiosity-driven, under 60 chars, no "How I..." unless earned. Lead with the tension or number.
70 
71## Dependencies
72 
73- `whisper` (local installation, model: turbo)
74- Google Drive CLI or SDK for listing/downloading files
75- Anthropic API key (set via `ANTHROPIC_API_KEY` environment variable)
76 
77## Configuration
78 
791. Set `ANTHROPIC_API_KEY` in your environment
802. Update `GWS_GATEWAY` in `scripts/process_videos.py` to point to your Google Drive CLI
813. Update `WHISPER_BIN` if Whisper is installed at a different path
82 
83## Adding New Folders
84 
85Pass `--folder-id <ID>` for different folders. Each folder uses the same shared `processed_ids.json` log (Drive IDs are globally unique so there's no collision).
86 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 3,615
Checked
Source
ericosiu/ai-marketing-skills ↗
Creator
ericosiu · 34 listings
View creator

Similar skills

See all →
SkillAI LinkedIn Carousel Buildercharlie947/social-media-skills · by charlie947Generate a branded slide-by-slide LinkedIn carousel using Gemini. Takes source content, builds a design brief, waits for approval, then outputs per-slide image generation prompts. 1080x1350 vertical format. Use this skill whenever the user says "carousel", "build a carousel", "turn this into a carousel", "gemini carousel", or wants multi-slide LinkedIn content. Always includes an approval gate between brief and image generation.★ 3.7k GitHub starsSkillLinkedIn Carousel BuilderJakeschincariol/linkedin-agent-skill · by JakeschincariolBuild a LinkedIn document post (carousel) - slide-by-slide copy, the cover that earns the swipe, and the PDF to upload. Use when the user says carousel", "document post", "slides for LinkedIn", "turn this into a carousel", or has a list-shaped idea that would die as a text post.★ 1.9k GitHub starsSkillIG Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillIG Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub starsSkillSocial Campaign Analyzeralirezarezvani/claude-skills · by alirezarezvaniSocial media campaign analysis and performance tracking. Calculates engagement rates, ROI, and benchmarks across platforms. Use when analyzing social media performance, calculating engagement rate, measuring campaign ROI, comparing platform metrics, or benchmarking against industry standards. Also use when the user mentions "social media audit," "engagement rate," or "which platform performs best.★ 26.3k GitHub starsSkillLinkedIn Post Performance Scorercharlie947/social-media-skills · by charlie947Score a LinkedIn post using real performance data. Pulls the user's own post history via Apify (or uses cached data) to identify what actually performs, then scores the draft against those patterns. Use this skill whenever the user says "score my post", "review my post", "rate this post", "give me feedback", "how good is this post", or pastes a LinkedIn post and asks for critique. Separates historical comparisons from an explicitly labelled editorial-only fallback. Designed for live scoring at events and everyday post review.★ 3.7k GitHub stars

More from ericosiu

SkillVideo Moment Extraction Agentericosiu/ai-marketing-skills · by ericosiuUse when an agent must extract moments, quotes, objections, hooks, or evidence from long video or audio cheaper than full-frame ingest — sales calls, podcasts, YouTube episodes, Loom trials, discovery recordings. Goal-directed watch via Gemini agentic video understanding (frames, audio, or transcript). Not for cutting, overlays, rendering, scheduling, or publishing.★ 3.6k GitHub starsSkillConversion Operationsericosiu/ai-marketing-skills · by ericosiupython3 telemetry/versioncheck.py 2>/dev/null || true★ 3.6k GitHub starsSkillFinance Operationsericosiu/ai-marketing-skills · by ericosiuAI-powered financial analysis suite. Generates executive CFO briefings from QuickBooks exports (P&L, Balance Sheet, General Ledger, Cash Flow, etc.) with anomaly detection, burn rate, runway analysis, and scenario modeling. Also estimates codebase development costs with organizational overhead and AI ROI analysis. Triggers on: 'CFO briefing', 'financial analysis', 'cost briefing', 'expense review', 'runway analysis', 'burn rate', 'cost estimate', 'how much would this cost to build', 'development cost', 'Claude ROI'.★ 3.6k GitHub starsSkillRevenue Intelligence Dashboardericosiu/ai-marketing-skills · by ericosiupython3 telemetry/versioncheck.py 2>/dev/null || true★ 3.6k GitHub starsSkillSales Pipeline Managerericosiu/ai-marketing-skills · by ericosiupython3 telemetry/versioncheck.py 2>/dev/null || true★ 3.6k GitHub starsSkillValue-Based Sales Playbookericosiu/ai-marketing-skills · by ericosiupython3 telemetry/versioncheck.py 2>/dev/null || true★ 3.6k GitHub stars