vidpipe 1.3.6 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,16 +9,16 @@
9
9
  ╚═══╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝
10
10
  ```
11
11
 
12
- **Your AI video editor — turn raw recordings into shorts, reels, captions, social posts, and blog posts. Record once, publish everywhere.**
12
+ **Your AI video editor and content ideation engine — turn raw recordings into shorts, reels, captions, social posts, and blog posts. Ideate, record, edit, publish.**
13
13
 
14
- 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](https://github.com/github/copilot-sdk) AI agents and OpenAI Whisper.
14
+ An agentic video editor and content ideation platform 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](https://github.com/github/copilot-sdk) AI agents, OpenAI Whisper, and Google Gemini.
15
15
 
16
16
  [![CI](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml/badge.svg)](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml)
17
17
  [![npm version](https://img.shields.io/npm/v/vidpipe)](https://www.npmjs.com/package/vidpipe)
18
18
  [![Node.js 20+](https://img.shields.io/badge/node-20%2B-brightgreen)](https://nodejs.org/)
19
19
  [![License: ISC](https://img.shields.io/badge/license-ISC-blue)](./LICENSE)
20
20
  [![Docs](https://img.shields.io/badge/docs-vidpipe-a78bfa)](https://htekdev.github.io/vidpipe/)
21
- [![Last Updated](https://img.shields.io/badge/last_updated-February_2026-informational)](.)
21
+ [![Last Updated](https://img.shields.io/badge/last_updated-March_2026-informational)](.)
22
22
 
23
23
  </div>
24
24
 
@@ -38,28 +38,32 @@ npm install -g vidpipe
38
38
 
39
39
  <table>
40
40
  <tr>
41
+ <td>💡 <b>Content Ideation (ID8)</b> — AI-generated, trend-backed video ideas</td>
41
42
  <td>🎙️ <b>Whisper Transcription</b> — Word-level timestamps</td>
42
- <td>📐 <b>Split-Screen Layouts</b> — Portrait, square, and feed</td>
43
43
  </tr>
44
44
  <tr>
45
+ <td>📐 <b>Split-Screen Layouts</b> — Portrait, square, and feed</td>
45
46
  <td>🔇 <b>AI Silence Removal</b> — Context-aware, capped at 20%</td>
47
+ </tr>
48
+ <tr>
46
49
  <td>💬 <b>Karaoke Captions</b> — Word-by-word highlighting</td>
50
+ <td>✂️ <b>Short Clips</b> — Best 15–60s moments, hook-first ordering</td>
47
51
  </tr>
48
52
  <tr>
49
- <td>✂️ <b>Short Clips</b> — Best 15–60s moments, multi-segment</td>
50
53
  <td>🎞️ <b>Medium Clips</b> — 1–3 min with crossfade transitions</td>
54
+ <td>📑 <b>Chapter Detection</b> — JSON, Markdown, YouTube, FFmeta</td>
51
55
  </tr>
52
56
  <tr>
53
- <td>📑 <b>Chapter Detection</b> — JSON, Markdown, YouTube, FFmeta</td>
54
57
  <td>📱 <b>Social Posts</b> — TikTok, YouTube, Instagram, LinkedIn, X</td>
58
+ <td>📰 <b>Blog Post</b> — Dev.to style with web-sourced links</td>
55
59
  </tr>
56
60
  <tr>
57
- <td>📰 <b>Blog Post</b> — Dev.to style with web-sourced links</td>
58
61
  <td>🎨 <b>Brand Voice</b> — Custom tone, hashtags via brand.json</td>
62
+ <td>🔍 <b>Face Detection</b> — ONNX-based webcam cropping</td>
59
63
  </tr>
60
64
  <tr>
61
- <td>🔍 <b>Face Detection</b> — ONNX-based webcam cropping</td>
62
- <td>🚀 <b>Auto-Publish</b> — Scheduled posting to TikTok, YouTube, Instagram, LinkedIn, X</td>
65
+ <td>🚀 <b>Auto-Publish</b> — Scheduled posting via Late API</td>
66
+ <td>👁️ <b>Gemini Vision</b> — AI video analysis and scene detection</td>
63
67
  </tr>
64
68
  </table>
65
69
 
@@ -118,28 +122,46 @@ vidpipe [options] [video-path]
118
122
  vidpipe init # Interactive setup wizard
119
123
  vidpipe review # Open post review web app
120
124
  vidpipe schedule # View posting schedule
125
+ vidpipe realign # Realign scheduled posts to match schedule.json
121
126
  vidpipe ideate # Generate or list saved content ideas
127
+ vidpipe chat # Interactive schedule management agent
128
+ vidpipe doctor # Check all prerequisites
122
129
  ```
123
130
 
131
+ ### Process Options
132
+
124
133
  | Option | Description |
125
134
  |--------|-------------|
126
- | `--doctor` | Check that all prerequisites (FFmpeg, API keys, etc.) are installed and configured |
127
135
  | `[video-path]` | Process a specific video file (implies `--once`) |
128
136
  | `--watch-dir <path>` | Folder to watch for new recordings |
129
137
  | `--output-dir <path>` | Output directory (default: `./recordings`) |
130
138
  | `--openai-key <key>` | OpenAI API key |
131
139
  | `--exa-key <key>` | Exa AI key for web search in social posts |
132
140
  | `--brand <path>` | Path to `brand.json` (default: `./brand.json`) |
141
+ | `--ideas <ids>` | Comma-separated idea IDs to link to this video |
133
142
  | `--once` | Process next video and exit |
134
143
  | `--no-silence-removal` | Skip silence removal |
135
144
  | `--no-shorts` | Skip short clip extraction |
136
145
  | `--no-medium-clips` | Skip medium clip generation |
137
146
  | `--no-social` | Skip social media posts |
138
147
  | `--no-social-publish` | Skip social media queue-build stage |
139
- | `--late-api-key <key>` | Override Late API key |
140
148
  | `--no-captions` | Skip caption generation/burning |
141
149
  | `--no-git` | Skip git commit/push |
150
+ | `--late-api-key <key>` | Override Late API key |
142
151
  | `-v, --verbose` | Debug-level logging |
152
+ | `--doctor` | Check that all prerequisites are installed |
153
+
154
+ ### Ideate Options
155
+
156
+ | Option | Description |
157
+ |--------|-------------|
158
+ | `--topics <topics>` | Comma-separated seed topics for trend research |
159
+ | `--count <n>` | Number of ideas to generate (default: 5) |
160
+ | `--list` | List existing ideas instead of generating |
161
+ | `--status <status>` | Filter by status: `draft`, `ready`, `recorded`, `published` |
162
+ | `--format <format>` | Output format: `table` (default) or `json` |
163
+ | `--output <dir>` | Ideas directory (default: `./ideas`) |
164
+ | `--brand <path>` | Brand config path (default: `./brand.json`) |
143
165
 
144
166
  ---
145
167
 
@@ -190,6 +212,54 @@ recordings/
190
212
 
191
213
  ---
192
214
 
215
+ ## 💡 Content Ideation (ID8)
216
+
217
+ VidPipe includes a research-backed content ideation engine that generates video ideas before you record. Ideas are stored as GitHub Issues for full lifecycle tracking.
218
+
219
+ ```bash
220
+ # Generate ideas backed by trend research
221
+ vidpipe ideate --topics "GitHub Copilot, TypeScript" --count 4
222
+
223
+ # List all saved ideas
224
+ vidpipe ideate --list
225
+
226
+ # Filter by status
227
+ vidpipe ideate --list --status ready
228
+
229
+ # JSON output for programmatic access (e.g., VidRecord integration)
230
+ vidpipe ideate --list --format json
231
+
232
+ # Link ideas to a recording
233
+ vidpipe process video.mp4 --ideas 12,15
234
+ ```
235
+
236
+ ### How It Works
237
+
238
+ The **IdeationAgent** uses MCP tools (Exa web search, YouTube, Perplexity) to research trending topics in your niche before generating ideas. Each idea includes:
239
+
240
+ - **Topic & hook** — The angle that makes it compelling
241
+ - **Audience & key takeaway** — Who it's for and what they'll learn
242
+ - **Talking points** — Structured bullet points to guide your recording
243
+ - **Publish-by date** — Based on timeliness (3–5 days for hot trends, months for evergreen)
244
+ - **Trend context** — The research findings that back the idea
245
+
246
+ ### Idea Lifecycle
247
+
248
+ ```
249
+ draft → ready → recorded → published
250
+ ```
251
+
252
+ | Status | Meaning |
253
+ |--------|---------|
254
+ | `draft` | Generated by AI, awaiting your review |
255
+ | `ready` | Approved — ready to record |
256
+ | `recorded` | Linked to a video via `--ideas` flag |
257
+ | `published` | Content from this idea has been published |
258
+
259
+ Ideas automatically influence downstream content — when you link ideas to a recording with `--ideas`, the pipeline's agents (shorts, social posts, summaries, blog) reference your intended topic and hook for more focused output.
260
+
261
+ ---
262
+
193
263
  ## 📺 Review App
194
264
 
195
265
  VidPipe includes a built-in web app for reviewing, editing, and scheduling social media posts before publishing.
@@ -290,6 +360,8 @@ OUTPUT_DIR=/path/to/output
290
360
  # FFMPEG_PATH=/usr/local/bin/ffmpeg
291
361
  # FFPROBE_PATH=/usr/local/bin/ffprobe
292
362
  # LATE_API_KEY=sk_your_key_here # Optional: Late API for social publishing
363
+ # GITHUB_TOKEN=ghp_... # Optional: GitHub token for ID8 idea storage
364
+ # IDEAS_REPO=owner/repo # Optional: GitHub repo for storing ideas as Issues
293
365
  ```
294
366
 
295
367
  Social media publishing is configured via `schedule.json` and the Late API. See [Social Publishing Guide](./docs/social-publishing.md) for details.
@@ -305,12 +377,29 @@ Social media publishing is configured via `schedule.json` and the Late API. See
305
377
  | [FFmpeg Setup](./docs/ffmpeg-setup.md) | Platform-specific install (Windows, macOS, Linux, ARM64) |
306
378
  | [Brand Customization](./docs/brand-customization.md) | Customize AI voice, vocabulary, hashtags, and content style |
307
379
  | [Social Publishing](./docs/social-publishing.md) | Review, schedule, and publish social posts via Late API |
380
+ | [Architecture (L0–L7)](./docs/architecture/layers.md) | Layer hierarchy, import rules, and testing strategy |
381
+ | [Platform Content Strategy](./docs/platform-content-strategy.md) | Research-backed recommendations per social platform |
382
+
383
+ Full reference docs are available at [htekdev.github.io/vidpipe](https://htekdev.github.io/vidpipe/).
308
384
 
309
385
  ---
310
386
 
311
387
  ## 🏗️ Architecture
312
388
 
313
- Agentic architecture built on the [GitHub Copilot SDK](https://github.com/github/copilot-sdk) each editing task is handled by a specialized AI agent:
389
+ VidPipe uses a strict **L0–L7 layered architecture** where each layer can only import from specific lower layers. This enforces clean separation of concerns and makes every layer independently testable.
390
+
391
+ ```
392
+ L7-app CLI, servers, watchers → L0, L1, L3, L6
393
+ L6-pipeline Stage orchestration → L0, L1, L5
394
+ L5-assets Lazy-loaded asset + bridges → L0, L1, L4
395
+ L4-agents LLM agents (BaseAgent) → L0, L1, L3
396
+ L3-services Business logic + cost tracking → L0, L1, L2
397
+ L2-clients External API/process wrappers → L0, L1
398
+ L1-infra Infrastructure (config, logger) → L0
399
+ L0-pure Pure functions, zero I/O → (nothing)
400
+ ```
401
+
402
+ Each editing task is handled by a specialized AI agent built on the [GitHub Copilot SDK](https://github.com/github/copilot-sdk):
314
403
 
315
404
  ```mermaid
316
405
  graph TD
@@ -321,6 +410,7 @@ graph TD
321
410
  BP --> CA[ChapterAgent]
322
411
  BP --> SMA[SocialMediaAgent]
323
412
  BP --> BA[BlogAgent]
413
+ BP --> IA[IdeationAgent]
324
414
 
325
415
  SRA -->|tools| T1[detect_silence, decide_removals]
326
416
  SHA -->|tools| T2[plan_shorts]
@@ -329,11 +419,13 @@ graph TD
329
419
  SA -->|tools| T5[capture_frame, write_summary]
330
420
  SMA -->|tools| T6[search_links, create_posts]
331
421
  BA -->|tools| T7[search_web, write_blog]
422
+ IA -->|tools| T8[web_search, youtube_search, generate_ideas]
332
423
 
333
424
  style BP fill:#1e3a5f,stroke:#60a5fa,color:#fff
425
+ style IA fill:#5a4d27,stroke:#fbbf24,color:#fff
334
426
  ```
335
427
 
336
- Each agent communicates with the LLM through structured tool calls, ensuring reliable, parseable outputs.
428
+ Each agent communicates with the LLM through structured tool calls, ensuring reliable, parseable outputs. See the [Architecture Guide](./docs/architecture/layers.md) for full details on layer rules and import enforcement.
337
429
 
338
430
  ---
339
431
 
@@ -344,23 +436,28 @@ Each agent communicates with the LLM through structured tool calls, ensuring rel
344
436
  | [TypeScript](https://www.typescriptlang.org/) | Language (ES2022, ESM) |
345
437
  | [GitHub Copilot SDK](https://github.com/github/copilot-sdk) | AI agent framework |
346
438
  | [OpenAI Whisper](https://platform.openai.com/docs/guides/speech-to-text) | Speech-to-text |
439
+ | [Google Gemini](https://ai.google.dev/) | Vision-based video analysis |
347
440
  | [FFmpeg](https://ffmpeg.org/) | Video/audio processing |
348
441
  | [Sharp](https://sharp.pixelplumbing.com/) | Image analysis (webcam detection) |
442
+ | [Octokit](https://github.com/octokit/octokit.js) | GitHub API (idea storage as Issues) |
349
443
  | [Commander.js](https://github.com/tj/commander.js) | CLI framework |
350
444
  | [Chokidar](https://github.com/paulmillr/chokidar) | File system watching |
351
445
  | [Winston](https://github.com/winstonjs/winston) | Logging |
352
- | [Exa AI](https://exa.ai/) | Web search for social posts and blog |
446
+ | [Exa AI](https://exa.ai/) | Web search for social posts, blog, and ideation |
353
447
 
354
448
  ---
355
449
 
356
450
  ## 🗺️ Roadmap
357
451
 
358
452
  - [x] **Automated social posting** — Publish directly to platforms via Late API
453
+ - [x] **Content ideation (ID8)** — AI-generated, trend-backed video ideas with lifecycle tracking
454
+ - [x] **Gemini Vision integration** — AI-powered video analysis and scene detection
455
+ - [x] **L0–L7 layered architecture** — Strict separation of concerns with import enforcement
456
+ - [x] **GitHub agentic workflows** — Automated issue and PR triage via GitHub Actions
457
+ - [x] **Hook-first clip ordering** — Most engaging moment plays first in shorts
359
458
  - [ ] **Multi-language support** — Transcription and summaries in multiple languages
360
459
  - [ ] **Custom templates** — User-defined Markdown & social post templates
361
- - [ ] **Web dashboard** — Browser UI for reviewing and editing outputs
362
460
  - [ ] **Batch processing** — Process an entire folder of existing videos
363
- - [ ] **Custom short criteria** — Configure what makes a "good" short for your content
364
461
  - [ ] **Thumbnail generation** — Auto-generate branded thumbnails for shorts
365
462
 
366
463
  ---