vidpipe 1.2.2 β†’ 1.3.0

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.
Files changed (170) hide show
  1. package/README.md +126 -36
  2. package/assets/features-infographic.png +0 -0
  3. package/assets/models/ultraface-320.onnx +0 -0
  4. package/assets/review-ui.png +0 -0
  5. package/dist/fonts/Montserrat-Bold.ttf +0 -0
  6. package/dist/fonts/Montserrat-Regular.ttf +0 -0
  7. package/dist/fonts/OFL.txt +93 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +6465 -120
  10. package/dist/index.js.map +1 -1
  11. package/dist/models/ultraface-320.onnx +0 -0
  12. package/dist/public/index.html +684 -0
  13. package/package.json +15 -4
  14. package/dist/agents/BaseAgent.d.ts +0 -52
  15. package/dist/agents/BaseAgent.d.ts.map +0 -1
  16. package/dist/agents/BaseAgent.js +0 -102
  17. package/dist/agents/BaseAgent.js.map +0 -1
  18. package/dist/agents/BlogAgent.d.ts +0 -3
  19. package/dist/agents/BlogAgent.d.ts.map +0 -1
  20. package/dist/agents/BlogAgent.js +0 -163
  21. package/dist/agents/BlogAgent.js.map +0 -1
  22. package/dist/agents/ChapterAgent.d.ts +0 -11
  23. package/dist/agents/ChapterAgent.d.ts.map +0 -1
  24. package/dist/agents/ChapterAgent.js +0 -191
  25. package/dist/agents/ChapterAgent.js.map +0 -1
  26. package/dist/agents/MediumVideoAgent.d.ts +0 -3
  27. package/dist/agents/MediumVideoAgent.d.ts.map +0 -1
  28. package/dist/agents/MediumVideoAgent.js +0 -219
  29. package/dist/agents/MediumVideoAgent.js.map +0 -1
  30. package/dist/agents/ShortsAgent.d.ts +0 -3
  31. package/dist/agents/ShortsAgent.d.ts.map +0 -1
  32. package/dist/agents/ShortsAgent.js +0 -243
  33. package/dist/agents/ShortsAgent.js.map +0 -1
  34. package/dist/agents/SilenceRemovalAgent.d.ts +0 -9
  35. package/dist/agents/SilenceRemovalAgent.d.ts.map +0 -1
  36. package/dist/agents/SilenceRemovalAgent.js +0 -209
  37. package/dist/agents/SilenceRemovalAgent.js.map +0 -1
  38. package/dist/agents/SocialMediaAgent.d.ts +0 -4
  39. package/dist/agents/SocialMediaAgent.d.ts.map +0 -1
  40. package/dist/agents/SocialMediaAgent.js +0 -248
  41. package/dist/agents/SocialMediaAgent.js.map +0 -1
  42. package/dist/agents/SummaryAgent.d.ts +0 -11
  43. package/dist/agents/SummaryAgent.d.ts.map +0 -1
  44. package/dist/agents/SummaryAgent.js +0 -333
  45. package/dist/agents/SummaryAgent.js.map +0 -1
  46. package/dist/commands/doctor.d.ts +0 -4
  47. package/dist/commands/doctor.d.ts.map +0 -1
  48. package/dist/commands/doctor.js +0 -230
  49. package/dist/commands/doctor.js.map +0 -1
  50. package/dist/config/brand.d.ts +0 -29
  51. package/dist/config/brand.d.ts.map +0 -1
  52. package/dist/config/brand.js +0 -83
  53. package/dist/config/brand.js.map +0 -1
  54. package/dist/config/environment.d.ts +0 -39
  55. package/dist/config/environment.d.ts.map +0 -1
  56. package/dist/config/environment.js +0 -47
  57. package/dist/config/environment.js.map +0 -1
  58. package/dist/config/ffmpegResolver.d.ts +0 -3
  59. package/dist/config/ffmpegResolver.d.ts.map +0 -1
  60. package/dist/config/ffmpegResolver.js +0 -37
  61. package/dist/config/ffmpegResolver.js.map +0 -1
  62. package/dist/config/logger.d.ts +0 -5
  63. package/dist/config/logger.d.ts.map +0 -1
  64. package/dist/config/logger.js +0 -13
  65. package/dist/config/logger.js.map +0 -1
  66. package/dist/config/pricing.d.ts +0 -34
  67. package/dist/config/pricing.d.ts.map +0 -1
  68. package/dist/config/pricing.js +0 -71
  69. package/dist/config/pricing.js.map +0 -1
  70. package/dist/index.d.ts.map +0 -1
  71. package/dist/pipeline.d.ts +0 -57
  72. package/dist/pipeline.d.ts.map +0 -1
  73. package/dist/pipeline.js +0 -324
  74. package/dist/pipeline.js.map +0 -1
  75. package/dist/providers/ClaudeProvider.d.ts +0 -14
  76. package/dist/providers/ClaudeProvider.d.ts.map +0 -1
  77. package/dist/providers/ClaudeProvider.js +0 -182
  78. package/dist/providers/ClaudeProvider.js.map +0 -1
  79. package/dist/providers/CopilotProvider.d.ts +0 -17
  80. package/dist/providers/CopilotProvider.d.ts.map +0 -1
  81. package/dist/providers/CopilotProvider.js +0 -149
  82. package/dist/providers/CopilotProvider.js.map +0 -1
  83. package/dist/providers/OpenAIProvider.d.ts +0 -14
  84. package/dist/providers/OpenAIProvider.d.ts.map +0 -1
  85. package/dist/providers/OpenAIProvider.js +0 -175
  86. package/dist/providers/OpenAIProvider.js.map +0 -1
  87. package/dist/providers/index.d.ts +0 -18
  88. package/dist/providers/index.d.ts.map +0 -1
  89. package/dist/providers/index.js +0 -61
  90. package/dist/providers/index.js.map +0 -1
  91. package/dist/providers/types.d.ts +0 -112
  92. package/dist/providers/types.d.ts.map +0 -1
  93. package/dist/providers/types.js +0 -8
  94. package/dist/providers/types.js.map +0 -1
  95. package/dist/services/captionGeneration.d.ts +0 -7
  96. package/dist/services/captionGeneration.d.ts.map +0 -1
  97. package/dist/services/captionGeneration.js +0 -29
  98. package/dist/services/captionGeneration.js.map +0 -1
  99. package/dist/services/costTracker.d.ts +0 -63
  100. package/dist/services/costTracker.d.ts.map +0 -1
  101. package/dist/services/costTracker.js +0 -137
  102. package/dist/services/costTracker.js.map +0 -1
  103. package/dist/services/fileWatcher.d.ts +0 -19
  104. package/dist/services/fileWatcher.d.ts.map +0 -1
  105. package/dist/services/fileWatcher.js +0 -120
  106. package/dist/services/fileWatcher.js.map +0 -1
  107. package/dist/services/gitOperations.d.ts +0 -3
  108. package/dist/services/gitOperations.d.ts.map +0 -1
  109. package/dist/services/gitOperations.js +0 -43
  110. package/dist/services/gitOperations.js.map +0 -1
  111. package/dist/services/socialPosting.d.ts +0 -38
  112. package/dist/services/socialPosting.d.ts.map +0 -1
  113. package/dist/services/socialPosting.js +0 -102
  114. package/dist/services/socialPosting.js.map +0 -1
  115. package/dist/services/transcription.d.ts +0 -3
  116. package/dist/services/transcription.d.ts.map +0 -1
  117. package/dist/services/transcription.js +0 -100
  118. package/dist/services/transcription.js.map +0 -1
  119. package/dist/services/videoIngestion.d.ts +0 -3
  120. package/dist/services/videoIngestion.d.ts.map +0 -1
  121. package/dist/services/videoIngestion.js +0 -104
  122. package/dist/services/videoIngestion.js.map +0 -1
  123. package/dist/tools/captions/captionGenerator.d.ts +0 -84
  124. package/dist/tools/captions/captionGenerator.d.ts.map +0 -1
  125. package/dist/tools/captions/captionGenerator.js +0 -390
  126. package/dist/tools/captions/captionGenerator.js.map +0 -1
  127. package/dist/tools/ffmpeg/aspectRatio.d.ts +0 -101
  128. package/dist/tools/ffmpeg/aspectRatio.d.ts.map +0 -1
  129. package/dist/tools/ffmpeg/aspectRatio.js +0 -339
  130. package/dist/tools/ffmpeg/aspectRatio.js.map +0 -1
  131. package/dist/tools/ffmpeg/audioExtraction.d.ts +0 -16
  132. package/dist/tools/ffmpeg/audioExtraction.d.ts.map +0 -1
  133. package/dist/tools/ffmpeg/audioExtraction.js +0 -87
  134. package/dist/tools/ffmpeg/audioExtraction.js.map +0 -1
  135. package/dist/tools/ffmpeg/captionBurning.d.ts +0 -8
  136. package/dist/tools/ffmpeg/captionBurning.d.ts.map +0 -1
  137. package/dist/tools/ffmpeg/captionBurning.js +0 -72
  138. package/dist/tools/ffmpeg/captionBurning.js.map +0 -1
  139. package/dist/tools/ffmpeg/clipExtraction.d.ts +0 -38
  140. package/dist/tools/ffmpeg/clipExtraction.d.ts.map +0 -1
  141. package/dist/tools/ffmpeg/clipExtraction.js +0 -215
  142. package/dist/tools/ffmpeg/clipExtraction.js.map +0 -1
  143. package/dist/tools/ffmpeg/faceDetection.d.ts +0 -127
  144. package/dist/tools/ffmpeg/faceDetection.d.ts.map +0 -1
  145. package/dist/tools/ffmpeg/faceDetection.js +0 -501
  146. package/dist/tools/ffmpeg/faceDetection.js.map +0 -1
  147. package/dist/tools/ffmpeg/frameCapture.d.ts +0 -10
  148. package/dist/tools/ffmpeg/frameCapture.d.ts.map +0 -1
  149. package/dist/tools/ffmpeg/frameCapture.js +0 -49
  150. package/dist/tools/ffmpeg/frameCapture.js.map +0 -1
  151. package/dist/tools/ffmpeg/silenceDetection.d.ts +0 -10
  152. package/dist/tools/ffmpeg/silenceDetection.d.ts.map +0 -1
  153. package/dist/tools/ffmpeg/silenceDetection.js +0 -56
  154. package/dist/tools/ffmpeg/silenceDetection.js.map +0 -1
  155. package/dist/tools/ffmpeg/singlePassEdit.d.ts +0 -25
  156. package/dist/tools/ffmpeg/singlePassEdit.d.ts.map +0 -1
  157. package/dist/tools/ffmpeg/singlePassEdit.js +0 -124
  158. package/dist/tools/ffmpeg/singlePassEdit.js.map +0 -1
  159. package/dist/tools/search/exaClient.d.ts +0 -8
  160. package/dist/tools/search/exaClient.d.ts.map +0 -1
  161. package/dist/tools/search/exaClient.js +0 -38
  162. package/dist/tools/search/exaClient.js.map +0 -1
  163. package/dist/tools/whisper/whisperClient.d.ts +0 -3
  164. package/dist/tools/whisper/whisperClient.d.ts.map +0 -1
  165. package/dist/tools/whisper/whisperClient.js +0 -77
  166. package/dist/tools/whisper/whisperClient.js.map +0 -1
  167. package/dist/types/index.d.ts +0 -305
  168. package/dist/types/index.d.ts.map +0 -1
  169. package/dist/types/index.js +0 -44
  170. package/dist/types/index.js.map +0 -1
package/README.md CHANGED
@@ -1,14 +1,27 @@
1
- [![CI](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml/badge.svg)](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml)
2
- [![npm version](https://img.shields.io/npm/v/vidpipe)](https://www.npmjs.com/package/vidpipe)
3
- [![Node.js 20+](https://img.shields.io/badge/node-20%2B-brightgreen)](https://nodejs.org/)
4
- [![License: ISC](https://img.shields.io/badge/license-ISC-blue)](./LICENSE)
1
+ <div align="center">
5
2
 
6
- # 🎬 VidPipe
3
+ ```
4
+ β–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
5
+ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•
6
+ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
7
+ β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β•
8
+ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
9
+ β•šβ•β•β•β• β•šβ•β•β•šβ•β•β•β•β•β• β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β•β•β•β•β•β•
10
+ ```
7
11
 
8
12
  **Drop a video. Get transcripts, summaries, short clips, captions, blog posts, and social media posts β€” automatically.**
9
13
 
10
14
  An AI-powered CLI pipeline that watches for new video recordings and transforms them into rich, structured content using [GitHub Copilot SDK](https://github.com/github/copilot-sdk) agents and OpenAI Whisper.
11
15
 
16
+ [![CI](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml/badge.svg)](https://github.com/htekdev/vidpipe/actions/workflows/ci.yml)
17
+ [![npm version](https://img.shields.io/npm/v/vidpipe)](https://www.npmjs.com/package/vidpipe)
18
+ [![Node.js 20+](https://img.shields.io/badge/node-20%2B-brightgreen)](https://nodejs.org/)
19
+ [![License: ISC](https://img.shields.io/badge/license-ISC-blue)](./LICENSE)
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)](.)
22
+
23
+ </div>
24
+
12
25
  ```bash
13
26
  npm install -g vidpipe
14
27
  ```
@@ -17,24 +30,38 @@ npm install -g vidpipe
17
30
 
18
31
  ## ✨ Features
19
32
 
20
- - 🎬 **14-Stage Automated Pipeline** β€” Drop a video and walk away; everything runs end-to-end
21
- - πŸŽ™οΈ **Whisper Transcription** β€” Word-level timestamps via OpenAI Whisper API
22
- - πŸ”‡ **AI-Driven Silence Removal** β€” Conservative, context-aware dead-air detection (capped at 20% removal)
23
- - πŸ“ **Smart Split-Screen Layouts** β€” Webcam + screen content for 3 aspect ratios: portrait (9:16), square (1:1), and feed (4:5)
24
- - πŸ” **Edge-Based Webcam Detection** β€” Detects webcam overlay position via skin-tone analysis and inter-frame edge refinement (no hardcoded margins)
25
- - 🎯 **Face-Aware AR-Matched Cropping** β€” Webcam region is aspect-ratio-matched and center-cropped to fill each layout with no black bars
26
- - πŸ’¬ **Karaoke Captions** β€” Opus Clips-style word-by-word highlighting with green active word on portrait, yellow on landscape
27
- - πŸͺ **Hook Overlays** β€” Animated title text burned into portrait short clips
28
- - βœ‚οΈ **Short Clips** β€” AI identifies the best 15–60s moments, supports composite (multi-segment) shorts
29
- - 🎞️ **Medium Clips** β€” 1–3 min standalone segments for deeper content with crossfade transitions
30
- - πŸ“‘ **Chapter Detection** β€” AI-identified topic boundaries in 4 formats (JSON, Markdown, FFmetadata, YouTube timestamps)
31
- - πŸ“± **Social Media Posts** β€” Platform-tailored content for TikTok, YouTube, Instagram, LinkedIn, and X
32
- - πŸ“° **Dev.to Blog Post** β€” Long-form technical blog post with frontmatter and web-sourced links
33
- - πŸ”— **Web Search Integration** β€” Finds relevant links for social posts and blog content via Exa
34
- - πŸ”„ **Git Automation** β€” Auto-commits and pushes all generated content after each video
35
- - 🎨 **Brand Voice** β€” Customize AI tone, vocabulary, hashtags, and content style via `brand.json`
36
- - πŸ‘οΈ **Watch Mode** β€” Monitors a folder and processes new `.mp4` files on arrival
37
- - 🧠 **Agent Architecture** β€” Powered by GitHub Copilot SDK with tool-calling agents
33
+ <p align="center">
34
+ <img src="assets/features-infographic.png" alt="VidPipe Features β€” Input β†’ AI Processing β†’ Outputs" width="900" />
35
+ </p>
36
+
37
+ <br />
38
+
39
+ <table>
40
+ <tr>
41
+ <td>πŸŽ™οΈ <b>Whisper Transcription</b> β€” Word-level timestamps</td>
42
+ <td>πŸ“ <b>Split-Screen Layouts</b> β€” Portrait, square, and feed</td>
43
+ </tr>
44
+ <tr>
45
+ <td>πŸ”‡ <b>AI Silence Removal</b> β€” Context-aware, capped at 20%</td>
46
+ <td>πŸ’¬ <b>Karaoke Captions</b> β€” Word-by-word highlighting</td>
47
+ </tr>
48
+ <tr>
49
+ <td>βœ‚οΈ <b>Short Clips</b> β€” Best 15–60s moments, multi-segment</td>
50
+ <td>🎞️ <b>Medium Clips</b> β€” 1–3 min with crossfade transitions</td>
51
+ </tr>
52
+ <tr>
53
+ <td>πŸ“‘ <b>Chapter Detection</b> β€” JSON, Markdown, YouTube, FFmeta</td>
54
+ <td>πŸ“± <b>Social Posts</b> β€” TikTok, YouTube, Instagram, LinkedIn, X</td>
55
+ </tr>
56
+ <tr>
57
+ <td>πŸ“° <b>Blog Post</b> β€” Dev.to style with web-sourced links</td>
58
+ <td>🎨 <b>Brand Voice</b> β€” Custom tone, hashtags via brand.json</td>
59
+ </tr>
60
+ <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>
63
+ </tr>
64
+ </table>
38
65
 
39
66
  ---
40
67
 
@@ -85,6 +112,9 @@ vidpipe \
85
112
 
86
113
  ```
87
114
  vidpipe [options] [video-path]
115
+ vidpipe init # Interactive setup wizard
116
+ vidpipe review # Open post review web app
117
+ vidpipe schedule # View posting schedule
88
118
  ```
89
119
 
90
120
  | Option | Description |
@@ -101,6 +131,8 @@ vidpipe [options] [video-path]
101
131
  | `--no-shorts` | Skip short clip extraction |
102
132
  | `--no-medium-clips` | Skip medium clip generation |
103
133
  | `--no-social` | Skip social media posts |
134
+ | `--no-social-publish` | Skip social media queue-build stage |
135
+ | `--late-api-key <key>` | Override Late API key |
104
136
  | `--no-captions` | Skip caption generation/burning |
105
137
  | `--no-git` | Skip git commit/push |
106
138
  | `-v, --verbose` | Debug-level logging |
@@ -154,10 +186,52 @@ recordings/
154
186
 
155
187
  ---
156
188
 
157
- ## πŸ”„ Pipeline
189
+ ## πŸ“Ί Review App
158
190
 
191
+ VidPipe includes a built-in web app for reviewing, editing, and scheduling social media posts before publishing.
192
+
193
+ <div align="center">
194
+ <img src="assets/review-ui.png" alt="VidPipe Review UI" width="800" />
195
+ <br />
196
+ <em>Review and approve posts across YouTube, TikTok, Instagram, LinkedIn, and X/Twitter</em>
197
+ </div>
198
+
199
+ ```bash
200
+ # Launch the review app
201
+ vidpipe review
159
202
  ```
160
- Ingest β†’ Transcribe β†’ Silence Removal β†’ Captions β†’ Caption Burn β†’ Shorts β†’ Medium Clips β†’ Chapters β†’ Summary β†’ Social Media β†’ Short Posts β†’ Medium Clip Posts β†’ Blog β†’ Git Push
203
+
204
+ - **Platform tabs** β€” Filter posts by platform (YouTube, TikTok, Instagram, LinkedIn, X)
205
+ - **Video preview** β€” See the video thumbnail and content before approving
206
+ - **Keyboard shortcuts** β€” Arrow keys to navigate, Enter to approve, Backspace to reject
207
+ - **Smart scheduling** β€” Posts are queued with optimal timing per platform
208
+
209
+ ---
210
+
211
+ ## πŸ”„ Pipeline
212
+
213
+ ```mermaid
214
+ graph LR
215
+ A[πŸ“₯ Ingest] --> B[πŸŽ™οΈ Transcribe]
216
+ B --> C[πŸ”‡ Silence Removal]
217
+ C --> D[πŸ’¬ Captions]
218
+ D --> E[πŸ”₯ Caption Burn]
219
+ E --> F[βœ‚οΈ Shorts]
220
+ F --> G[🎞️ Medium Clips]
221
+ G --> H[πŸ“‘ Chapters]
222
+ H --> I[πŸ“ Summary]
223
+ I --> J[πŸ“± Social Media]
224
+ J --> K[πŸ“± Short Posts]
225
+ K --> L[πŸ“± Medium Posts]
226
+ L --> M[πŸ“° Blog]
227
+ M --> N[πŸ“¦ Queue Build]
228
+ N --> O[πŸ”„ Git Push]
229
+
230
+ style A fill:#2d5a27,stroke:#4ade80
231
+ style B fill:#1e3a5f,stroke:#60a5fa
232
+ style E fill:#5a2d27,stroke:#f87171
233
+ style F fill:#5a4d27,stroke:#fbbf24
234
+ style O fill:#2d5a27,stroke:#4ade80
161
235
  ```
162
236
 
163
237
  | # | Stage | Description |
@@ -175,7 +249,8 @@ Ingest β†’ Transcribe β†’ Silence Removal β†’ Captions β†’ Caption Burn β†’ Shor
175
249
  | 11 | **Short Posts** | Per-short social media posts for all 5 platforms |
176
250
  | 12 | **Medium Clip Posts** | Per-medium-clip social media posts for all 5 platforms |
177
251
  | 13 | **Blog** | Dev.to blog post with frontmatter, web-sourced links via Exa |
178
- | 14 | **Git Push** | Auto-commits and pushes to `origin main` |
252
+ | 14 | **Queue Build** | Builds publish queue from social posts with scheduled slots |
253
+ | 15 | **Git Push** | Auto-commits and pushes to `origin main` |
179
254
 
180
255
  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.
181
256
 
@@ -210,8 +285,11 @@ OUTPUT_DIR=/path/to/output
210
285
  # BRAND_PATH=./brand.json # Optional: path to brand voice config
211
286
  # FFMPEG_PATH=/usr/local/bin/ffmpeg
212
287
  # FFPROBE_PATH=/usr/local/bin/ffprobe
288
+ # LATE_API_KEY=sk_your_key_here # Optional: Late API for social publishing
213
289
  ```
214
290
 
291
+ Social media publishing is configured via `schedule.json` and the Late API. See [Social Publishing Guide](./docs/social-publishing.md) for details.
292
+
215
293
  ---
216
294
 
217
295
  ## πŸ“š Documentation
@@ -222,6 +300,7 @@ OUTPUT_DIR=/path/to/output
222
300
  | [Configuration](./docs/configuration.md) | All CLI flags, env vars, skip options, and examples |
223
301
  | [FFmpeg Setup](./docs/ffmpeg-setup.md) | Platform-specific install (Windows, macOS, Linux, ARM64) |
224
302
  | [Brand Customization](./docs/brand-customization.md) | Customize AI voice, vocabulary, hashtags, and content style |
303
+ | [Social Publishing](./docs/social-publishing.md) | Review, schedule, and publish social posts via Late API |
225
304
 
226
305
  ---
227
306
 
@@ -229,15 +308,25 @@ OUTPUT_DIR=/path/to/output
229
308
 
230
309
  Agent-based architecture built on the [GitHub Copilot SDK](https://github.com/github/copilot-sdk):
231
310
 
232
- ```
233
- BaseAgent (abstract)
234
- β”œβ”€β”€ SilenceRemovalAgent β†’ detect_silence, decide_removals
235
- β”œβ”€β”€ SummaryAgent β†’ capture_frame, write_summary
236
- β”œβ”€β”€ ShortsAgent β†’ plan_shorts
237
- β”œβ”€β”€ MediumVideoAgent β†’ plan_medium_clips
238
- β”œβ”€β”€ ChapterAgent β†’ generate_chapters
239
- β”œβ”€β”€ SocialMediaAgent β†’ search_links, create_posts
240
- └── BlogAgent β†’ search_web, write_blog
311
+ ```mermaid
312
+ graph TD
313
+ BP[🧠 BaseAgent] --> SRA[SilenceRemovalAgent]
314
+ BP --> SA[SummaryAgent]
315
+ BP --> SHA[ShortsAgent]
316
+ BP --> MVA[MediumVideoAgent]
317
+ BP --> CA[ChapterAgent]
318
+ BP --> SMA[SocialMediaAgent]
319
+ BP --> BA[BlogAgent]
320
+
321
+ SRA -->|tools| T1[detect_silence, decide_removals]
322
+ SHA -->|tools| T2[plan_shorts]
323
+ MVA -->|tools| T3[plan_medium_clips]
324
+ CA -->|tools| T4[generate_chapters]
325
+ SA -->|tools| T5[capture_frame, write_summary]
326
+ SMA -->|tools| T6[search_links, create_posts]
327
+ BA -->|tools| T7[search_web, write_blog]
328
+
329
+ style BP fill:#1e3a5f,stroke:#60a5fa,color:#fff
241
330
  ```
242
331
 
243
332
  Each agent communicates with the LLM through structured tool calls, ensuring reliable, parseable outputs.
@@ -262,7 +351,7 @@ Each agent communicates with the LLM through structured tool calls, ensuring rel
262
351
 
263
352
  ## πŸ—ΊοΈ Roadmap
264
353
 
265
- - [ ] **Automated social posting** β€” Publish directly to platforms via their APIs
354
+ - [x] **Automated social posting** β€” Publish directly to platforms via Late API
266
355
  - [ ] **Multi-language support** β€” Transcription and summaries in multiple languages
267
356
  - [ ] **Custom templates** β€” User-defined Markdown & social post templates
268
357
  - [ ] **Web dashboard** β€” Browser UI for reviewing and editing outputs
@@ -292,3 +381,4 @@ Run `vidpipe doctor` to verify your setup.
292
381
  ## πŸ“„ License
293
382
 
294
383
  ISC Β© [htekdev](https://github.com/htekdev)
384
+
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,93 @@
1
+ Copyright 2024 The Montserrat.Git Project Authors (https://github.com/JulietaUla/Montserrat.git)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://openfontlicense.org
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
1
+
2
+ export { }