You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Green (#15b27b) → purple (#7c3aed) in all prompt templates. Script length 60-90s → 2-4 min (8-15 scenes). First scene imagePrompts must be purely visual with no text.
Copy file name to clipboardExpand all lines: app/api/cron/ingest/route.ts
+8-7Lines changed: 8 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -258,7 +258,7 @@ Your style is inspired by Cleo Abram's "Huge If True" — you make complex techn
258
258
- End with a clear takeaway that makes the viewer feel smarter
259
259
- Target audience: developers who want to stay current but don't have time to read everything
260
260
261
-
Script format: 60-90 second explainer videos. Think TikTok/YouTubeShorts energy with real educational depth.
261
+
Script format: 2-4 minute explainer videos for horizontal YouTube, 60-90 seconds for Shorts. Think Cleo Abram energy with real educational depth.
262
262
263
263
CodingCat.dev covers: React, Next.js, TypeScript, Svelte, web APIs, CSS, Node.js, cloud services, AI/ML for developers, and web platform updates.`;
264
264
@@ -311,7 +311,7 @@ function buildPrompt(trends: TrendResult[], research?: ResearchPayload): string
311
311
312
312
${topicList}${researchContext}
313
313
314
-
Pick the MOST interesting and timely topic for a short explainer video (60-90 seconds). Then generate a complete video script as JSON.
314
+
Pick the MOST interesting and timely topic for an explainer video (2-4 minutes for horizontal YouTube). Then generate a complete video script as JSON.
315
315
316
316
## Scene Types
317
317
@@ -337,7 +337,7 @@ CRITICAL: This video will be a visual infographic explainer. There will be NO te
337
337
338
338
For EACH scene, generate an "imagePrompts" array with 2-5 image generation prompts. Each prompt should follow this exact template:
339
339
340
-
"Infographic 2D architecture style, pure black background. [SPECIFIC VISUAL FOR THIS SCENE]. Highlighted elements filled with bright emerald green (#15b27b). White lines connecting components and white text annotations. Color palette: ONLY black, emerald green, and white — no purple, no blue, no gradients."
340
+
"Infographic 2D architecture style, pure black background. [SPECIFIC VISUAL FOR THIS SCENE]. Highlighted elements filled with vivid purple (#7c3aed). White lines connecting components and white text annotations. Color palette: ONLY black, purple (#7c3aed), and white — no blue, no green, no gradients."
341
341
342
342
Replace [SPECIFIC VISUAL FOR THIS SCENE] with a detailed description of what the infographic should show for that particular scene. Be specific — reference the actual technical concepts, comparisons, or workflows being discussed.
343
343
@@ -349,7 +349,8 @@ Guidelines for image prompts:
349
349
- For comparison scenes: show side-by-side comparison charts or feature matrices
350
350
- For list scenes: show each item as a distinct visual element in the infographic
351
351
- Make prompts visually varied — don't repeat the same layout
352
-
- STRICT color palette: pure black background (#000000), bright emerald green (#15b27b) for highlighted elements, white for lines and text annotations. Do NOT use purple, blue, orange, red, or gradient backgrounds
352
+
- STRICT color palette: pure black background (#000000), vivid purple (#7c3aed) for highlighted elements, white for lines and text annotations. Do NOT use blue, green, orange, red, or gradient backgrounds
353
+
- FIRST SCENE image prompts must be purely visual and eye-catching — NO text labels, NO annotations, NO words. This is the thumbnail/hook frame that needs to stop the scroll. Show a striking visual metaphor for the topic
353
354
354
355
## JSON Schema
355
356
@@ -370,7 +371,7 @@ Return ONLY a JSON object matching this exact schema:
370
371
"visualDescription": "string - what to show on screen (fallback for all types)",
371
372
"bRollKeywords": ["keyword1", "keyword2"],
372
373
"durationEstimate": 15,
373
-
"imagePrompts": ["Infographic 2D architecture style, pure black background. [specific visual]. Highlighted elements filled with bright emerald green (#15b27b). White lines and text annotations. ONLY black, green, white colors."],
374
+
"imagePrompts": ["Infographic 2D architecture style, pure black background. [specific visual]. Highlighted elements filled with vivid purple (#7c3aed). White lines and text annotations. ONLY black, purple, white colors."],
374
375
"code": {
375
376
"snippet": "string - actual code to display (only for sceneType: code)",
@@ -399,14 +400,14 @@ Return ONLY a JSON object matching this exact schema:
399
400
}
400
401
401
402
Requirements:
402
-
- The script should have 3-5 scenes totaling 60-90 seconds
403
+
- The script should have 8-15 scenes totaling 2-4 minutes (120-240 seconds)
403
404
- The hook should be punchy and curiosity-driven
404
405
- Use at least 2 different scene types for visual variety
405
406
- Only include the type-specific field that matches the sceneType (e.g., only include "code" when sceneType is "code")
406
407
- For "code" scenes, provide real, syntactically correct code
407
408
- The qualityScore should be your honest self-assessment (0-100)
408
409
- Each scene MUST include an "imagePrompts" array with 2-5 image generation prompts
409
-
- Image prompts must follow the template: "Infographic 2D architecture style, pure black background. [specific]. Highlighted elements filled with bright emerald green (#15b27b). White lines connecting components and white text annotations. Color palette: ONLY black, emerald green, and white."
410
+
- Image prompts must follow the template: "Infographic 2D architecture style, pure black background. [specific]. Highlighted elements filled with vivid purple (#7c3aed). White lines connecting components and white text annotations. Color palette: ONLY black, purple (#7c3aed), and white."
410
411
- Do NOT include any text overlays, titles, or script words in the video — narration audio carries all words
411
412
- Calculate prompt count per scene: Math.ceil(durationEstimate / 4)
412
413
- Return ONLY the JSON object, no markdown or extra text`;
0 commit comments