tayyab415 commited on
Commit
fe95fe1
Β·
1 Parent(s): 96c309b

Simplify architecture sections - diagrams first, remove ASCII art

Browse files
Files changed (1) hide show
  1. README.md +10 -138
README.md CHANGED
@@ -105,70 +105,11 @@ We built a 5-agent pipeline that:
105
 
106
  The first half of our pipeline takes a massive YouTube video and identifies the **golden moments** worth sharing.
107
 
108
- ### **The Agent Workflow**
109
-
110
- ```
111
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
112
- β”‚ πŸ“₯ PHASE 1: HOTSPOT DETECTION & CLIP CREATION β”‚
113
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
114
-
115
- YouTube URL (10min - 3hr video)
116
- β”‚
117
- β–Ό
118
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
119
- β”‚ πŸ” SCOUT AGENT β”‚
120
- β”‚ ───────────────────────────────────────────────────────────── β”‚
121
- β”‚ Model: Gemini 2.0 Flash β”‚
122
- β”‚ ───────────────────────────────────────────────────────────── β”‚
123
- β”‚ β€’ Downloads audio + fetches transcript β”‚
124
- β”‚ β€’ Analyzes audio energy peaks (detects hype moments) β”‚
125
- β”‚ β€’ Semantic analysis of transcript for viral potential β”‚
126
- β”‚ β€’ Classifies video type (podcast/tutorial/vlog/gaming) β”‚
127
- β”‚ β€’ Outputs: Top 10-20 timestamp candidates with reasoning β”‚
128
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
129
- β”‚
130
- β–Ό
131
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
132
- β”‚ βœ… VERIFIER AGENT β”‚
133
- β”‚ ───────────────────────────────────────────────────────────── β”‚
134
- β”‚ Model: Gemini 2.0 Flash + Vision API β”‚
135
- β”‚ ───────────────────────────────────────────────────────────── β”‚
136
- β”‚ β€’ Downloads 5-10s video segments around each hotspot β”‚
137
- β”‚ β€’ Uploads to Gemini Vision for visual quality analysis β”‚
138
- β”‚ β€’ Scores each clip: Visual Quality | Engagement | Shareability β”‚
139
- β”‚ β€’ Filters out low-quality, blurry, or boring segments β”‚
140
- β”‚ β€’ Outputs: Verified clips ranked by viral potential β”‚
141
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
142
- β”‚
143
- β–Ό
144
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
145
- β”‚ 🎬 DIRECTOR AGENT β”‚
146
- β”‚ ───────────────────────────────────────────────────────────── β”‚
147
- β”‚ Model: Gemini 2.0 Flash Lite β”‚
148
- β”‚ ───────────────────────────────────────────────────────────── β”‚
149
- β”‚ β€’ Creates the edit plan from verified clips β”‚
150
- β”‚ β€’ Determines optimal clip order for narrative flow β”‚
151
- β”‚ β€’ Sets duration per clip (8-15s each, 30-60s total) β”‚
152
- β”‚ β€’ Plans transition types and pacing β”‚
153
- β”‚ β€’ Outputs: JSON edit plan with precise timestamps β”‚
154
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
155
- β”‚
156
- β–Ό
157
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
158
- β”‚ πŸ–οΏ½οΏ½οΏ½ HANDS AGENT β”‚
159
- β”‚ ───────────────────────────────────────────────────────────── β”‚
160
- β”‚ Tech: FFmpeg + Modal (Cloud Compute) β”‚
161
- β”‚ ───────────────────────────────────────────────────────────── β”‚
162
- β”‚ β€’ Extracts clips at exact timestamps (no re-download) β”‚
163
- β”‚ β€’ Concatenates with crossfade transitions β”‚
164
- β”‚ β€’ Handles audio normalization β”‚
165
- β”‚ β€’ Outputs: Raw compiled video (30-60s landscape) β”‚
166
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
167
- β”‚
168
- β–Ό
169
- πŸŽ₯ RAW COMPILED CLIP
170
- (Ready for Production Polish)
171
- ```
172
 
173
  ### **Gradio App - Clip Generation Interface**
174
 
@@ -178,80 +119,17 @@ YouTube URL (10min - 3hr video)
178
  <em>The Gradio interface for generating clips from YouTube URLs</em>
179
  </p>
180
 
181
- ### **Architecture Block Diagram**
182
-
183
- <p align="center">
184
- <img src="./resources/diagram1.png" width="700" alt="Architecture 1 - Clip Generation Pipeline">
185
- </p>
186
-
187
  ---
188
 
189
  ## πŸ—οΈ **Architecture 2: Production Polish & Refinement**
190
 
191
  The second half takes that raw clip and transforms it into **viral-ready vertical content**.
192
 
193
- ### **The Showrunner Pipeline**
194
-
195
- ```
196
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
197
- β”‚ 🎭 PHASE 2: PRODUCTION POLISH & REFINEMENT β”‚
198
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
199
-
200
- Raw Compiled Clip (30-60s landscape)
201
- β”‚
202
- β–Ό
203
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
204
- β”‚ 🎭 SHOWRUNNER AGENT - Step 1: Smart Crop β”‚
205
- β”‚ ───────────────────────────────────────────────────────────── β”‚
206
- β”‚ Tech: Gemini Flash Lite + Qwen VL (Nebius) β”‚
207
- β”‚ ───────────────────────────────────────────────────────────── β”‚
208
- β”‚ β€’ Gemini detects scene change timestamps β”‚
209
- β”‚ β€’ Qwen VL analyzes each key frame for subject position β”‚
210
- β”‚ β€’ Calculates optimal crop window (tracks faces/subjects) β”‚
211
- β”‚ β€’ Smooth interpolation between positions (no jarring jumps) β”‚
212
- β”‚ β€’ Renders 9:16 vertical with intelligent framing β”‚
213
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
214
- β”‚
215
- β–Ό
216
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
217
- β”‚ 🎭 SHOWRUNNER AGENT - Step 2: Intro Generation β”‚
218
- β”‚ ───────────────────────────────────────────────────────────── β”‚
219
- β”‚ Tech: FLUX (Nebius) + ElevenLabs β”‚
220
- β”‚ ───────────────────────────────────────────────────────────── β”‚
221
- β”‚ β€’ Gemini writes content-aware hook script β”‚
222
- β”‚ β€’ FLUX generates custom intro image (mood-matched) β”‚
223
- β”‚ β€’ ElevenLabs synthesizes professional voiceover β”‚
224
- β”‚ β€’ Combines into 3-5s animated intro sequence β”‚
225
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€οΏ½οΏ½οΏ½β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
226
- β”‚
227
- β–Ό
228
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
229
- β”‚ 🎭 SHOWRUNNER AGENT - Step 3: Audio & Subtitles β”‚
230
- β”‚ ───────────────────────────────────────────────────────────── β”‚
231
- β”‚ Tech: WhisperX + FFmpeg β”‚
232
- β”‚ ───────────────────────────────────────────────────────────── β”‚
233
- β”‚ β€’ WhisperX transcribes with word-level timestamps β”‚
234
- β”‚ β€’ Mood detection selects background music (hype/chill/suspense) β”‚
235
- β”‚ β€’ Audio mixing: voice + music at optimal levels β”‚
236
- β”‚ β€’ Burns stylized subtitles into video β”‚
237
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
238
- β”‚
239
- β–Ό
240
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
241
- β”‚ 🎭 SHOWRUNNER AGENT - Step 4: Final Assembly β”‚
242
- β”‚ ───────────────────────────────────────────────────────────── β”‚
243
- β”‚ Tech: FFmpeg + MoviePy β”‚
244
- β”‚ ───────────────────────────────────────────────────────────── β”‚
245
- β”‚ β€’ Concatenates intro + main content β”‚
246
- β”‚ β€’ Applies final color grading β”‚
247
- β”‚ β€’ Exports in TikTok/Reels/Shorts optimized format β”‚
248
- β”‚ β€’ Delivers download-ready MP4 β”‚
249
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
250
- β”‚
251
- β–Ό
252
- πŸ“± VIRAL-READY VERTICAL VIDEO
253
- (9:16, subtitled, intro, music)
254
- ```
255
 
256
  ### **Gradio App - Production Studio Interface**
257
 
@@ -261,12 +139,6 @@ Raw Compiled Clip (30-60s landscape)
261
  <em>The Production Studio for adding polish to your clips</em>
262
  </p>
263
 
264
- ### **Architecture Block Diagram**
265
-
266
- <p align="center">
267
- <img src="./resources/diagram2.png" width="700" alt="Architecture 2 - Production Polish Pipeline">
268
- </p>
269
-
270
  ---
271
 
272
  ## 🀝 **Partner Technologies**
 
105
 
106
  The first half of our pipeline takes a massive YouTube video and identifies the **golden moments** worth sharing.
107
 
108
+ <p align="center">
109
+ <img src="./resources/diagram1.png" width="700" alt="Architecture 1 - Clip Generation Pipeline">
110
+ <br>
111
+ <em>Scout β†’ Verifier β†’ Director β†’ Hands: From YouTube URL to raw compiled clip</em>
112
+ </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
 
114
  ### **Gradio App - Clip Generation Interface**
115
 
 
119
  <em>The Gradio interface for generating clips from YouTube URLs</em>
120
  </p>
121
 
 
 
 
 
 
 
122
  ---
123
 
124
  ## πŸ—οΈ **Architecture 2: Production Polish & Refinement**
125
 
126
  The second half takes that raw clip and transforms it into **viral-ready vertical content**.
127
 
128
+ <p align="center">
129
+ <img src="./resources/diagram2.png" width="700" alt="Architecture 2 - Production Polish Pipeline">
130
+ <br>
131
+ <em>Showrunner: Smart Crop β†’ Intro β†’ Subtitles β†’ Final Assembly</em>
132
+ </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
 
134
  ### **Gradio App - Production Studio Interface**
135
 
 
139
  <em>The Production Studio for adding polish to your clips</em>
140
  </p>
141
 
 
 
 
 
 
 
142
  ---
143
 
144
  ## 🀝 **Partner Technologies**