agentsclimarketplace

Cm video factory

Skill tody-agent/codymaster/.agent/skills/cm-video-factory

Vibe Coding Framework - Full SaaS Development Team from A-Z with Brain, Self Improvement, Auto Development

Install
npx -y skills add tody-agent/codymaster --skill cm-video-factory

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing 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.

What its author says it does

Copied from the file, not written here

Private Code-to-Video Engine using Remotion React, TTS (ElevenLabs/OpenAI), and Content Mastery. Creates pure VibeCoding-style animations for TikTok/Shorts/Reels automatically.

SKILL.md

17.9 KB, as published. Nobody here has run it

CM Video Factory v2.0 — Mass Video Production Engine (Private)

A self-hosted, batch-capable video factory built on Remotion React (code-to-video). Scripts → TTS → Subtitles → Render → Policy Check → Publish.

Dual format: 9:16 vertical (TikTok/Shorts/Reels) + 16:9 horizontal (YouTube). Dual language: Vietnamese (VieNeu-TTS) + English (ElevenLabs/OpenAI).

Spiritual twin of cm-content-factory, focused on Short-Form + Long-Form video at scale.


Core Philosophy

  • Video is Math, Not Art. React components define every frame. JSON scripts define every word.
  • VibeCoding Aesthetic. Dark SaaS visuals, cyan #00F0FF glow, Fira Code, engineering UI motifs.
  • Content Mastery DNA. Every script uses SB7, Cialdini, Hook Formulas. No boring "Hello guys" intros.
  • Batch-First. One command renders 10+ videos overnight. Queue, progress, retry, resume.
  • Policy-Safe. Built-in guardrails prevent shadowbans, demonetization, and content strikes.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                  📹 CM VIDEO FACTORY v2.0                    │
│            Batch Code-to-Video Production Engine             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌────────┐  │
│  │  SCRIPT  │──▶│   TTS    │──▶│ SUBTITLE │──▶│ RENDER │  │
│  │ Generator│   │  Engine  │   │ @remotion/│   │ Engine │  │
│  │ (JSON)   │   │ VieNeu + │   │ captions  │   │ Batch  │  │
│  │ CM hooks │   │ ElevenL  │   │ SRT+JSON  │   │ Queue  │  │
│  └──────────┘   └──────────┘   └──────────┘   └────────┘  │
│       │              │              │              │        │
│  ┌────┴──────────────┴──────────────┴──────────────┴────┐  │
│  │              🎛️ FORMAT ROUTER                         │  │
│  │   ┌─────────────┐          ┌──────────────┐          │  │
│  │   │  VERTICAL   │          │  HORIZONTAL  │          │  │
│  │   │  9:16       │          │  16:9        │          │  │
│  │   │  1080×1920  │          │  1920×1080   │          │  │
│  │   │  TikTok     │          │  YouTube     │          │  │
│  │   │  Reels      │          │  Facebook    │          │  │
│  │   │  Shorts     │          │              │          │  │
│  │   └─────────────┘          └──────────────┘          │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌──────────────────────────────────────────────────────┐  │
│  │              🛡️ POLICY COMPLIANCE ENGINE              │  │
│  │  Content scan | AI labeling | Upload throttle | Hash │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌──────────────────────────────────────────────────────┐  │
│  │              📊 BATCH QUEUE MANAGER                   │  │
│  │  queue.json | progress.json | retry logic | cron     │  │
│  └──────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Quick Start

# 1. Setup Remotion project (one-time)
cd video-factory && npm install

# 2. Generate single video (interactive)
node scripts/pipeline.js --script scripts-input/video_01.json --format tiktok

# 3. Batch render (queue-based)
node scripts/batch-runner.js --queue queue.json --batch-size 5

# 4. Resume interrupted batch
node scripts/batch-runner.js --queue queue.json --resume

# 5. Preview in browser (hot reload)
npx remotion studio

7-Phase Execution Pipeline

Phase 1: 🔬 RESEARCH

Scrape documentation, GitHub repos, URLs. Build knowledge base per topic. Uses cm-cro-methodology to identify pain points for maximum hook impact.

Phase 2: ✍️ SCRIPT (JSON)

AI generates strictly-keyed JSON scripts. One JSON = one video.

{
  "id": "video_042",
  "title": "Debug mệt mỏi?",
  "hook": "99% Dev tốn thanh xuân để debug vì bỏ qua quy tắc này.",
  "hook_formula": "data_shock",
  "language": "vi",
  "duration_target": 45,
  "format": "tiktok",
  "scenes": [
    {
      "time_start": 0,
      "duration": 3.5,
      "text": "99% Dev tốn thanh xuân để debug vì...",
      "visual": "TerminalCrashView",
      "props": { "error": "SIGSEGV", "animation": "glitch" }
    },
    {
      "time_start": 3.5,
      "duration": 5,
      "text": "Với Cody Master, lỗi tự phơi bày trong 2 giây.",
      "visual": "CodeGlowView",
      "props": { "code": "cm-debugging --trace", "highlight": true }
    }
  ],
  "cta": "Click link ở Bio để cài đặt miễn phí.",
  "hashtags": ["#vibecoding", "#devtools", "#codymaster"],
  "metadata": {
    "ai_generated": true,
    "ai_disclosure": "Video created with AI-assisted animation and voice synthesis"
  }
}

Phase 3: 🎙️ TTS (Voice Synthesis)

TTS Engine Router — auto-detect language → best engine:

LanguagePrimary EngineFallbackVoice Cloning
VietnameseVieNeu-TTS 0.5BOpenAI TTS✅ (3-5s ref)
EnglishElevenLabs multilingual_v2OpenAI TTS✅ (paid)
# Vietnamese TTS (VieNeu-TTS SDK)
from vieneu import Vieneu
tts = Vieneu()
audio = tts.infer(text="Xin chào, đây là VibeCoding Academy")
tts.save(audio, "audio_vi.wav")
# English TTS (ElevenLabs via infsh CLI)
infsh app run elevenlabs/tts --input '{
  "text": "Welcome to the VibeCoding revolution.",
  "voice": "george",
  "model": "eleven_multilingual_v2",
  "stability": 0.5,
  "similarity_boost": 0.8
}'

Outputs:

  • audio.mp3 — Final audio track
  • audio.json — Word-level timestamps (for subtitle sync)
  • audio.srt — Standard SRT file (for YouTube upload)

Phase 4: 📝 SUBTITLE ENGINE (@remotion/captions)

Uses official Remotion captions package for frame-perfect sync:

import { parseSrt, createTikTokStyleCaptions } from "@remotion/captions";

// Parse SRT from TTS output
const captions = parseSrt({ input: srtContent });

// Create TikTok-style word-by-word highlights
const { pages } = createTikTokStyleCaptions({
  captions,
  combineTokensWithinMilliseconds: 800,
});

// Render in React component
const SubtitleOverlay: React.FC = () => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();
  const currentTime = (frame / fps) * 1000; // ms

  return (
    <AbsoluteFill style={{ justifyContent: "flex-end", padding: 40 }}>
      {pages.map((page) => (
        <CaptionPage key={page.startMs} page={page} currentTime={currentTime} />
      ))}
    </AbsoluteFill>
  );
};

Phase 5: 🎨 RENDER (Remotion)

Dual-format compositions:

// Root.tsx — Two compositions for two formats
export const RemotionRoot: React.FC = () => (
  <>
    <Composition
      id="TikTokVideo"
      component={TikTokComposition}
      width={1080}
      height={1920}
      fps={30}
      durationInFrames={durationFromAudio}
    />
    <Composition
      id="YouTubeVideo"
      component={YouTubeComposition}
      width={1920}
      height={1080}
      fps={30}
      durationInFrames={durationFromAudio}
    />
  </>
);

Render commands:

# TikTok vertical (9:16)
npx remotion render src/index.ts TikTokVideo out/tiktok_video_042.mp4

# YouTube horizontal (16:9)
npx remotion render src/index.ts YouTubeVideo out/youtube_video_042.mp4

# Benchmark optimal concurrency first
npx remotion benchmark --composition TikTokVideo

Remotion Performance Rules (from remotion-dev/skills):

  • ✅ All animations driven by useCurrentFrame() — never useEffect/setInterval
  • ✅ Memoize expensive computations with useMemo/useCallback
  • ✅ Avoid GPU-heavy CSS (filter: blur(), drop-shadow()) in components
  • ✅ Use npx remotion benchmark to find optimal --concurrency
  • ✅ Video duration = getAudioDurationInSeconds() + 2s bumper
  • ✅ Use --log=verbose to identify slow frames

Phase 6: 🛡️ POLICY CHECK

Pre-publish compliance scan (runs automatically before upload):

POLICY_GATES:
  platform_limits:
    tiktok:
      max_daily_uploads: 3
      cooldown_hours: 4
      required_labels: ["AI-generated"]
      hashtag_range: [3, 7]
    youtube:
      max_daily_uploads: 2
      cooldown_hours: 6
      required_disclosure: true    # Creator Studio AI toggle
      monetization_check: true     # Must show human creative value
    reels:
      max_daily_uploads: 3
      cooldown_hours: 4

  content_rules:
    min_visual_uniqueness: 70     # % difference between consecutive videos
    banned_content_scan: true     # Check for hate speech, misleading claims
    no_unauthorized_cloning: true # No cloning real people without consent
    no_mass_duplicate: true       # Each video visually distinct

What gets checked:

  1. Script text scanned for banned keywords/topics
  2. Visual uniqueness hash compared to last N renders
  3. Upload rate verified against platform daily limits
  4. AI disclosure metadata injected into file
  5. Hashtag count validated (3-7 range)

Phase 7: 🚀 PUBLISH (Optional)

Multi-platform upload via APIs:

  • YouTube Shorts/Long-form → YouTube Data API v3
  • TikTok → TikTok Creator API
  • Facebook/Instagram Reels → Graph API

Auto-applies: title, description, hashtags, AI disclosure labels, thumbnail.


Batch Queue Manager

For mass production, use the queue system:

// queue.json
{
  "batch_id": "batch_2026_03_30",
  "created_at": "2026-03-30T09:00:00Z",
  "config": {
    "formats": ["tiktok", "youtube"],
    "language": "vi",
    "tts_engine": "vieneu",
    "concurrency": 1,
    "retry_max": 3
  },
  "jobs": [
    {
      "id": "job_001",
      "script": "scripts-input/video_01.json",
      "status": "queued",
      "attempts": 0,
      "outputs": []
    },
    {
      "id": "job_002",
      "script": "scripts-input/video_02.json",
      "status": "queued",
      "attempts": 0,
      "outputs": []
    }
  ]
}
// progress.json (auto-generated)
{
  "batch_id": "batch_2026_03_30",
  "total": 10,
  "completed": 3,
  "failed": 0,
  "in_progress": 1,
  "queued": 6,
  "estimated_remaining_minutes": 42,
  "last_updated": "2026-03-30T09:25:00Z"
}

CLI:

# Start batch (processes sequentially)
node scripts/batch-runner.js --queue queue.json

# Resume after interruption
node scripts/batch-runner.js --queue queue.json --resume

# Status check
node scripts/batch-runner.js --queue queue.json --status

# Schedule via cron (every day at 2 AM)
echo "0 2 * * * cd /path/to/video-factory && node scripts/batch-runner.js --queue queue.json --resume" | crontab -

Component Library (VibeCoding Aesthetic)

ComponentVisual EffectFormatUse Case
DarkTerminalMacOS-style window, typing animation, syntax colorsBothbash commands, workflows
VsCodeGlowSleek IDE editor with neon-blue shadowBothCode demonstrations
BouncingSubtitleTikTok-style bold text, word-by-word bounce9:16ALL spoken words (mandatory)
StatCounterRapidly spinning numbers in glassmorphic cardBothHook metrics ("10x", "200 articles")
SplitScreenTop: Concept / Bottom: Code16:9Before/after, comparisons
CodeDiffSide-by-side diff with green/red highlights16:9Showing improvements
FloatingCardGlassmorphic card with parallax hoverBothFeature callouts
ProgressRingAnimated circular progress indicatorBothStats, completion metrics

Strict Styling Rules:

  • ❌ NEVER use light mode components
  • Primary brand: Cyan #00F0FF
  • Secondary: Hot Pink #FF007F
  • Accent: Electric Purple #8B5CF6
  • Background: Void Black #0A0A0A → Deep Navy #050B14
  • Font: Fira Code (code), Inter (UI text), Be Vietnam Pro (Vietnamese text)
  • All animations: interpolate() + spring() — NEVER CSS transitions

Hook & Persuasion Framework

Before writing Video JSON, select one:

Short-Form (0-60s) — TikTok/Shorts/Reels

PhaseTimeGoal
HOOK0:00 - 0:03Extreme curiosity gap. Fast cut. Zero intro.
AGITATE0:03 - 0:15Visualize common pain (red errors, spaghetti code)
SOLUTION0:15 - 0:45Enter CodyMaster. Drop code. Make it glow.
CTA0:45 - 0:60Grand Slam Offer. "Lấy miễn phí tại bio".

Long-Form (3-15min) — YouTube

PhaseTimeGoal
HOOK0:00 - 0:30Pattern interrupt + "Stay to the end for..."
CONTEXT0:30 - 2:00Problem landscape. Why this matters NOW.
DEEP DIVE2:00 - 10:00Step-by-step demonstration with code
PROOF10:00 - 12:00Results, metrics, before/after
CTALast 30sSubscribe + comment + link in description

12 Hook Formulas

  1. Data Shock — "99% Dev fail vì bỏ qua điều này"
  2. Contrarian — "Đừng học React. Đây là lý do."
  3. Future Pacing — "Trong 60 giây, bạn sẽ viết code nhanh gấp 10x"
  4. Story Open — "Tháng trước, tôi mất 3 ngày debug..."
  5. Authority — "Sau 10 năm code, đây là bí mật duy nhất"
  6. Curiosity Gap — "Có 1 công cụ mà Google engineers dùng mà bạn chưa biết"
  7. Fear — "AI sẽ thay thế developer? Chỉ nếu bạn không biết điều này"
  8. Social Proof — "200+ engineers đã chuyển sang workflow này"
  9. Challenge — "Thử debug trong 2 giây challenge"
  10. Comparison — "Junior vs Senior: cùng 1 bug, khác nhau 10x tốc độ"
  11. Reveal — "Công cụ bí mật đằng sau 50 dự án production"
  12. Empathy — "Mình biết cảm giác code 12 tiếng mà không ra gì"

Platform Policy Summary

TikTok — What Gets You Shadowbanned

  • ❌ Mass-posting identical/near-identical content
  • ❌ Using 20+ generic hashtags (#fyp, #foryou spam)
  • ❌ Unlabeled AI-generated realistic content
  • ❌ Third-party tools for fake engagement
  • ❌ Posting frequency > 5/day without variation
  • ✅ Post 1-3 original videos/day with authentic engagement
  • ✅ Use 3-5 niche-specific hashtags
  • ✅ Label AI content using TikTok's built-in tools

YouTube — What Prevents Monetization

  • ❌ Mass-produced templated AI content ("AI slop")
  • ❌ Undisclosed realistic AI-generated content
  • ❌ Unauthorized voice/face cloning
  • ❌ Misleading titles/thumbnails
  • ✅ Show human creative direction in every video
  • ✅ Use AI disclosure toggle in Creator Studio
  • ✅ Add unique commentary, editing, educational value
  • ✅ Each video must demonstrate significant human involvement

Guidelines for Downstream Agents

  1. Never hardcode strings in React components. All text from JSON/SRT for perfect TTS sync.
  2. Animations = math. Use interpolate() and spring(). 30FPS = frame / 30 seconds.
  3. Audio drives duration. Video length = getAudioDurationInSeconds() + 2s end-bumper.
  4. Memoize everything. useMemo/useCallback on all expensive computations.
  5. No GPU CSS. Avoid filter: blur(), drop-shadow() in rendered components.
  6. Benchmark concurrency. Run npx remotion benchmark before batch renders.
  7. Policy-first. Run policy check before ANY upload. No exceptions.
  8. License check. VieNeu-TTS-0.5B = Apache 2.0 (commercial OK). VieNeu-TTS-0.3B = CC BY-NC 4.0 (non-commercial only).

Future Roadmap

  • v2.1: VieNeu-TTS voice cloning integration (clone user's voice from 5s sample)
  • v2.2: Remotion Lambda for parallel cloud rendering (10x speed)
  • v2.3: AI Avatar mode via bytedance/omnihuman-1-5 lipsync
  • v2.4: Auto A/B testing — render 2 hook variants, publish both, track engagement
  • v3.0: Full inference.sh integration — text-to-video AI scenes (Veo 3, Seedance)

Usage Triggers

Use when the user states:

  • "Start the video factory", "Create a TikTok/Shorts for this code"
  • "Run the Remotion pipeline", "Make a VibeCoding video"
  • "Generate a hook script for X", "Batch render videos"
  • "Render YouTube video", "Create 9:16 vertical video"
  • "tạo video hàng loạt", "render video tiktok"
  • "video factory batch", "create video from script"

Gives 0 of the 12 instructions most video audio skills give

Counted across 621 of the 795 authors here whose files we hold, read 2026-08-06

  • read individual rule files for detailed explanationsin 21 of 621, across 9 files
  • Use WAV PCM 16kHz mono audio formatin 13 of 621, across 4 files
  • render final videoin 13 of 621, across 6 files
  • use this skill when dealing with Remotion codein 11 of 621, across 4 files
  • save generated audio to a WAV filein 11 of 621, across 4 files
  • handle conversion errors gracefullyin 10 of 621, across 6 files
  • add captions to videos alwaysin 10 of 621, across 4 files
  • generate music from text descriptions using MusicGenin 9 of 621, across 2 files
  • do not skip pipeline layersin 9 of 621, across 3 files
  • do not make one tool do everythingin 9 of 621, across 3 files
  • never ask the user to paste their full API keyin 9 of 621, across 3 files
  • use azure document intelligence for complex pdfsin 9 of 621, across 4 files

Said here and by no other author read

  • render video in vertical or horizontal format
  • use json scripts for video generation
  • use SB7 hook formulas in scripts
  • include ai disclosure metadata in file
  • benchmark concurrency before rendering
  • validate hashtag count between three and seven

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

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.