video-production

Assemble course videos from individual lesson files with title slides and auto-generated timestamps for YouTube.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "video-production" with this command: npx skills add casper-studios/casper-marketplace/casper-studios-casper-marketplace-video-production

Video Production

Overview

Assemble course videos from individual lesson files with title slides and auto-generated timestamps for YouTube.

Quick Decision Tree

What do you need? │ ├── Full course assembly (end-to-end) │ └── references/workflow.md │ └── Combines all scripts below │ ├── Download videos from Drive │ └── Script: scripts/gdrive_video_download.py │ ├── Create title slides │ └── Script: scripts/create_title_slides.py │ ├── Stitch videos together │ └── Script: scripts/stitch_videos.py │ └── Generate YouTube description └── Script: scripts/generate_youtube_description.py

Environment Setup

Google Drive OAuth (same as google-workspace skill).

System Requirements

  • FFmpeg installed and in PATH

  • Python 3.9+

Complete Workflow

Full course assembly from Drive folder

python scripts/stitch_videos.py
--folder "https://drive.google.com/drive/folders/xxx"
--output "Complete Course.mp4"
--slide-duration 3

Pipeline Steps

  • Download - Get all videos from Drive folder

  • Parse Titles - Extract clean names from [e1] Intro format

  • Get Metadata - FFprobe for duration/resolution

  • Generate Slides - Title card for each lesson

  • Build Concat List - video1 → slide2 → video2 → ...

  • Stitch with FFmpeg - Concatenate all segments

  • Calculate Timestamps - Track cumulative duration

  • Generate Description - YouTube-ready markdown

Outputs

File Description

{output_name}.mp4

Final stitched video

youtube_description.md

Timestamped description

metadata.json

Processing info

Performance

Input Time Output Size

5 videos (30 min) ~5 min ~1.5 GB

10 videos (1 hr) ~10 min ~3 GB

20 videos (2 hr) ~20 min ~6 GB

Security Notes

Credential Handling

  • Google OAuth credentials for Drive access (see google-workspace skill)

  • mycreds.txt and client_secrets.json never committed to git

  • No additional API keys required for local video processing

Data Privacy

  • All video processing happens locally using FFmpeg

  • No video content is uploaded to external cloud services

  • Source videos downloaded from Google Drive to local .tmp/

  • Final videos stored locally until manually uploaded

  • Metadata JSON contains file names and timestamps only

Access Scopes

  • Google Drive: drive.readonly sufficient for downloading

  • Google Drive: drive required for uploading final videos

  • No external video processing APIs used

Compliance Considerations

  • Local Processing: All encoding/stitching done locally (privacy-preserving)

  • No Cloud Upload: Videos never leave your machine during processing

  • Content Rights: Ensure you have rights to source video content

  • Course Content: Verify licensing for educational content distribution

  • YouTube ToS: Generated descriptions comply with YouTube guidelines

  • Storage: Large video files require adequate local disk space

  • Cleanup: Remove temporary files from .tmp/ after processing

Troubleshooting

Common Issues

Issue: FFmpeg not found

Symptoms: "FFmpeg not found" or "command not found: ffmpeg" Cause: FFmpeg not installed or not in system PATH Solution:

  • Install FFmpeg: brew install ffmpeg (macOS) or download from ffmpeg.org

  • Verify installation: ffmpeg -version

  • Add FFmpeg to PATH if installed in non-standard location

  • Restart terminal after installation

Issue: Codec mismatch / incompatible videos

Symptoms: "Non-monotonous DTS" or codec errors during stitching Cause: Source videos have different codecs, resolutions, or frame rates Solution:

  • Re-encode all source videos to the same format before stitching

  • Use FFmpeg to normalize: ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

  • Ensure consistent resolution (e.g., all 1920x1080)

  • Match frame rates across all videos (e.g., all 30fps)

Issue: Audio out of sync

Symptoms: Audio drifts from video over time Cause: Inconsistent frame rates or variable frame rate sources Solution:

  • Use constant frame rate for all source videos

  • Re-encode with -vsync cfr flag

  • Avoid mixing video from different sources/devices

  • Check audio sample rates match across files

Issue: Insufficient disk space

Symptoms: "No space left on device" or incomplete output Cause: Not enough free space for video processing Solution:

  • Check available disk space: df -h

  • Clear .tmp/ directory of old files

  • Move large source videos to external drive

  • Process fewer videos at once

Issue: Google Drive download fails

Symptoms: Videos fail to download from Drive folder Cause: OAuth issue, permissions, or network timeout Solution:

  • Verify Google OAuth credentials (see google-workspace skill)

  • Check folder sharing permissions

  • Try downloading single file first to test

  • Check for network connectivity issues

Issue: Title slides not generating

Symptoms: Missing title cards in final video Cause: Font or image generation issue Solution:

  • Verify ImageMagick or Pillow is installed

  • Check font files exist if custom fonts specified

  • Review title text for special characters

  • Try with default font settings first

Resources

  • references/workflow.md - Complete video course workflow

Integration Patterns

Full Course Pipeline

Skills: google-workspace → video-production → google-workspace Use case: End-to-end course video assembly Flow:

  • Download lesson videos from Google Drive folder

  • Generate title slides and stitch all videos together

  • Upload final video back to Drive and generate YouTube description

Transcript to Timestamps

Skills: transcript-search → video-production Use case: Generate YouTube descriptions from meeting recordings Flow:

  • Search transcripts for relevant meetings

  • Extract topic timestamps from transcript

  • Generate formatted YouTube description with chapter markers

Content to Title Slides

Skills: content-generation → video-production Use case: Create branded title cards for videos Flow:

  • Generate title slide images with content-generation

  • Export slides in video-compatible format

  • Insert title slides between video segments

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

firecrawl-scraping

No summary provided by upstream source.

Repository SourceNeeds Review
General

pr-summary

No summary provided by upstream source.

Repository SourceNeeds Review
General

pr-comments

No summary provided by upstream source.

Repository SourceNeeds Review
General

content-generation

No summary provided by upstream source.

Repository SourceNeeds Review