โโโ โโโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโ โโโโโโโโ
โโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโ
โโโโโโโ โโโโโโโโโโโโโโ โโโโโโ โโโโโโโโ
โโโโโ โโโโโโโโโโ โโโ โโโโโโ โโโโโโโโ
Your AI video editor โ turn raw recordings into shorts, reels, captions, social posts, and blog posts. Record once, publish everywhere.
An agentic video editor that watches for new recordings and edits them into social-media-ready content โ shorts, reels, captions, blog posts, and platform-tailored social posts โ using GitHub Copilot SDK AI agents and OpenAI Whisper.
npm install -g vidpipe| ๐๏ธ Whisper Transcription โ Word-level timestamps | ๐ Split-Screen Layouts โ Portrait, square, and feed |
| ๐ AI Silence Removal โ Context-aware, capped at 20% | ๐ฌ Karaoke Captions โ Word-by-word highlighting |
| โ๏ธ Short Clips โ Best 15โ60s moments, multi-segment | ๐๏ธ Medium Clips โ 1โ3 min with crossfade transitions |
| ๐ Chapter Detection โ JSON, Markdown, YouTube, FFmeta | ๐ฑ Social Posts โ TikTok, YouTube, Instagram, LinkedIn, X |
| ๐ฐ Blog Post โ Dev.to style with web-sourced links | ๐จ Brand Voice โ Custom tone, hashtags via brand.json |
| ๐ Face Detection โ ONNX-based webcam cropping | ๐ Auto-Publish โ Scheduled posting to TikTok, YouTube, Instagram, LinkedIn, X |
# Install globally
npm install -g vidpipe
# Set up your environment
# Unix/Mac
cp .env.example .env
# Windows (PowerShell)
Copy-Item .env.example .env
# Then edit .env and add your OpenAI API key (REQUIRED):
# OPENAI_API_KEY=sk-your-key-here
# Verify all prerequisites are met
vidpipe --doctor
# Process a single video
vidpipe /path/to/video.mp4
# Watch a folder for new recordings
vidpipe --watch-dir ~/Videos/Recordings
# Full example with options
vidpipe \
--watch-dir ~/Videos/Recordings \
--output-dir ~/Content/processed \
--openai-key sk-... \
--brand ./brand.json \
--verbosePrerequisites:
- Node.js 20+
- FFmpeg 6.0+ โ Auto-bundled on common platforms (Windows x64, macOS, Linux x64) via
ffmpeg-static. On other architectures, install system FFmpeg (see Troubleshooting). Override withFFMPEG_PATHenv var if you need a specific build.- OpenAI API key (required) โ Get one at platform.openai.com/api-keys. Needed for Whisper transcription and all AI features.
- GitHub Copilot subscription โ Required for AI agent features (shorts generation, social media posts, summaries, blog posts). See GitHub Copilot.
See Getting Started for full setup instructions.
vidpipe [options] [video-path]
vidpipe init # Interactive setup wizard
vidpipe review # Open post review web app
vidpipe schedule # View posting schedule
| Option | Description |
|---|---|
--doctor |
Check that all prerequisites (FFmpeg, API keys, etc.) are installed and configured |
[video-path] |
Process a specific video file (implies --once) |
--watch-dir <path> |
Folder to watch for new recordings |
--output-dir <path> |
Output directory (default: ./recordings) |
--openai-key <key> |
OpenAI API key |
--exa-key <key> |
Exa AI key for web search in social posts |
--brand <path> |
Path to brand.json (default: ./brand.json) |
--once |
Process next video and exit |
--no-silence-removal |
Skip silence removal |
--no-shorts |
Skip short clip extraction |
--no-medium-clips |
Skip medium clip generation |
--no-social |
Skip social media posts |
--no-social-publish |
Skip social media queue-build stage |
--late-api-key <key> |
Override Late API key |
--no-captions |
Skip caption generation/burning |
--no-git |
Skip git commit/push |
-v, --verbose |
Debug-level logging |
recordings/
โโโ my-awesome-demo/
โโโ my-awesome-demo.mp4 # Original video
โโโ my-awesome-demo-edited.mp4 # Silence-removed
โโโ my-awesome-demo-captioned.mp4 # With burned-in captions
โโโ transcript.json # Word-level transcript
โโโ transcript-edited.json # Timestamps adjusted for silence removal
โโโ README.md # AI-generated summary with screenshots
โโโ captions/
โ โโโ captions.srt # SubRip subtitles
โ โโโ captions.vtt # WebVTT subtitles
โ โโโ captions.ass # Advanced SSA (karaoke-style)
โโโ shorts/
โ โโโ catchy-title.mp4 # Landscape base clip
โ โโโ catchy-title-captioned.mp4 # Landscape + burned captions
โ โโโ catchy-title-portrait.mp4 # 9:16 split-screen
โ โโโ catchy-title-portrait-captioned.mp4 # Portrait + captions + hook overlay
โ โโโ catchy-title-feed.mp4 # 4:5 split-screen
โ โโโ catchy-title-square.mp4 # 1:1 split-screen
โ โโโ catchy-title.md # Clip metadata
โ โโโ catchy-title/
โ โโโ posts/ # Per-short social posts (5 platforms)
โโโ medium-clips/
โ โโโ deep-dive-topic.mp4 # Landscape base clip
โ โโโ deep-dive-topic-captioned.mp4 # With burned captions
โ โโโ deep-dive-topic.md # Clip metadata
โ โโโ deep-dive-topic/
โ โโโ posts/ # Per-clip social posts (5 platforms)
โโโ chapters/
โ โโโ chapters.json # Structured chapter data
โ โโโ chapters.md # Markdown table
โ โโโ chapters.ffmetadata # FFmpeg metadata format
โ โโโ chapters-youtube.txt # YouTube description timestamps
โโโ social-posts/
โโโ tiktok.md # Full-video social posts
โโโ youtube.md
โโโ instagram.md
โโโ linkedin.md
โโโ x.md
โโโ devto.md # Dev.to blog post
VidPipe includes a built-in web app for reviewing, editing, and scheduling social media posts before publishing.
# Launch the review app
vidpipe review- Platform tabs โ Filter posts by platform (YouTube, TikTok, Instagram, LinkedIn, X)
- Video preview โ See the video thumbnail and content before approving
- Keyboard shortcuts โ Arrow keys to navigate, Enter to approve, Backspace to reject
- Smart scheduling โ Posts are queued with optimal timing per platform
graph LR
A[๐ฅ Ingest] --> B[๐๏ธ Transcribe]
B --> C[๐ Silence Removal]
C --> D[๐ฌ Captions]
D --> E[๐ฅ Caption Burn]
E --> F[โ๏ธ Shorts]
F --> G[๐๏ธ Medium Clips]
G --> H[๐ Chapters]
H --> I[๐ Summary]
I --> J[๐ฑ Social Media]
J --> K[๐ฑ Short Posts]
K --> L[๐ฑ Medium Posts]
L --> M[๐ฐ Blog]
M --> N[๐ฆ Queue Build]
N --> O[๐ Git Push]
style A fill:#2d5a27,stroke:#4ade80
style B fill:#1e3a5f,stroke:#60a5fa
style E fill:#5a2d27,stroke:#f87171
style F fill:#5a4d27,stroke:#fbbf24
style O fill:#2d5a27,stroke:#4ade80
| # | Stage | Description |
|---|---|---|
| 1 | Ingestion | Copies video, extracts metadata with FFprobe |
| 2 | Transcription | Extracts audio โ OpenAI Whisper for word-level transcription |
| 3 | Silence Removal | AI detects dead-air segments; context-aware removals capped at 20% |
| 4 | Captions | Generates .srt, .vtt, and .ass subtitle files with karaoke word highlighting |
| 5 | Caption Burn | Burns ASS captions into video (single-pass encode when silence was also removed) |
| 6 | Shorts | AI identifies best 15โ60s moments; extracts single and composite clips with 6 variants per short |
| 7 | Medium Clips | AI identifies 1โ3 min standalone segments with crossfade transitions |
| 8 | Chapters | AI detects topic boundaries; outputs JSON, Markdown, FFmetadata, and YouTube timestamps |
| 9 | Summary | AI writes a Markdown README with captured screenshots |
| 10 | Social Media | Platform-tailored posts for TikTok, YouTube, Instagram, LinkedIn, and X |
| 11 | Short Posts | Per-short social media posts for all 5 platforms |
| 12 | Medium Clip Posts | Per-medium-clip social media posts for all 5 platforms |
| 13 | Blog | Dev.to blog post with frontmatter, web-sourced links via Exa |
| 14 | Queue Build | Builds publish queue from social posts with scheduled slots |
| 15 | Git Push | Auto-commits and pushes to origin main |
Each stage can be independently skipped with --no-* flags. A stage failure does not abort the pipeline โ subsequent stages proceed with whatever data is available.
VidPipe supports multiple LLM providers:
| Provider | Env Var | Default Model | Notes |
|---|---|---|---|
copilot (default) |
โ | Claude Opus 4.6 | Uses GitHub Copilot auth |
openai |
OPENAI_API_KEY |
gpt-4o | Direct OpenAI API |
claude |
ANTHROPIC_API_KEY |
claude-opus-4.6 | Direct Anthropic API |
Set LLM_PROVIDER in your .env or pass via CLI. Override model with LLM_MODEL.
The pipeline tracks token usage and estimated cost across all providers, displaying a summary at the end of each run.
Configuration is loaded from CLI flags โ environment variables โ .env file โ defaults.
# .env
OPENAI_API_KEY=sk-your-key-here
WATCH_FOLDER=/path/to/recordings
OUTPUT_DIR=/path/to/output
# EXA_API_KEY=your-exa-key # Optional: enables web search in social/blog posts
# BRAND_PATH=./brand.json # Optional: path to brand voice config
# FFMPEG_PATH=/usr/local/bin/ffmpeg
# FFPROBE_PATH=/usr/local/bin/ffprobe
# LATE_API_KEY=sk_your_key_here # Optional: Late API for social publishingSocial media publishing is configured via schedule.json and the Late API. See Social Publishing Guide for details.
| Guide | Description |
|---|---|
| Getting Started | Prerequisites, installation, and first run |
| Configuration | All CLI flags, env vars, skip options, and examples |
| FFmpeg Setup | Platform-specific install (Windows, macOS, Linux, ARM64) |
| Brand Customization | Customize AI voice, vocabulary, hashtags, and content style |
| Social Publishing | Review, schedule, and publish social posts via Late API |
Agentic architecture built on the GitHub Copilot SDK โ each editing task is handled by a specialized AI agent:
graph TD
BP[๐ง BaseAgent] --> SRA[SilenceRemovalAgent]
BP --> SA[SummaryAgent]
BP --> SHA[ShortsAgent]
BP --> MVA[MediumVideoAgent]
BP --> CA[ChapterAgent]
BP --> SMA[SocialMediaAgent]
BP --> BA[BlogAgent]
SRA -->|tools| T1[detect_silence, decide_removals]
SHA -->|tools| T2[plan_shorts]
MVA -->|tools| T3[plan_medium_clips]
CA -->|tools| T4[generate_chapters]
SA -->|tools| T5[capture_frame, write_summary]
SMA -->|tools| T6[search_links, create_posts]
BA -->|tools| T7[search_web, write_blog]
style BP fill:#1e3a5f,stroke:#60a5fa,color:#fff
Each agent communicates with the LLM through structured tool calls, ensuring reliable, parseable outputs.
| Technology | Purpose |
|---|---|
| TypeScript | Language (ES2022, ESM) |
| GitHub Copilot SDK | AI agent framework |
| OpenAI Whisper | Speech-to-text |
| FFmpeg | Video/audio processing |
| Sharp | Image analysis (webcam detection) |
| Commander.js | CLI framework |
| Chokidar | File system watching |
| Winston | Logging |
| Exa AI | Web search for social posts and blog |
- Automated social posting โ Publish directly to platforms via Late API
- Multi-language support โ Transcription and summaries in multiple languages
- Custom templates โ User-defined Markdown & social post templates
- Web dashboard โ Browser UI for reviewing and editing outputs
- Batch processing โ Process an entire folder of existing videos
- Custom short criteria โ Configure what makes a "good" short for your content
- Thumbnail generation โ Auto-generate branded thumbnails for shorts
ffmpeg-static (an optional dependency) bundles FFmpeg for common platforms. On unsupported architectures, it skips gracefully and vidpipe falls back to your system FFmpeg.
Fix: Install FFmpeg on your system:
- Windows:
winget install Gyan.FFmpeg - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg(Debian/Ubuntu) orsudo dnf install ffmpeg(Fedora)
You can also point to a custom binary: export FFMPEG_PATH=/path/to/ffmpeg
Run vidpipe doctor to verify your setup.
ISC ยฉ htekdev

