Inspiration

Most YouTube content advice is generic — "post consistently," "use trending sounds," "add numbers to your title." None of it is specific to a creator's niche, and none of it actually helps them write the video. I wanted to build a tool that completely automates the pre-production workflow, taking a creator from "zero ideas" to a "fully written video blueprint" in under 30 seconds.

What it does

Signal is an end-to-end YouTube content automation pipeline:

  1. Automated Trend Research: It scans Google Trends and the YouTube Data API to find what people are actually searching for in a specific niche right now.
  2. Automated Ideation: It feeds this data to Llama 3.3 70B (via Groq) to generate clickable, ready-to-film video titles ranked by a real-time 0–100 demand score.
  3. Automated Scriptwriting: With one click, creators can automatically generate a full video script (Hook, Intro, Body, Outro) and a B-roll visual shot list for any idea.

How we built it

Backend: Python Flask serving Jinja2 templates. Frontend: Vanilla CSS/JS with asynchronous DOM injection for a seamless single-page feel. AI Engine: Groq API (Llama 3.3 70B) using native JSON mode for both topic ideation and on-demand script generation. Data Sources: pytrends for Google Trends and YouTube Data API v3 for real-time view counts. Caching & Hosting: Zerops Valkey (Redis-compatible) caches raw signal data for 1 hour to reduce API calls and drop response times from 25 seconds to under 1 second. Hosted entirely on Zerops.

Challenges we ran into

Initially, the LLM would occasionally return malformed JSON or wrap responses in markdown code fences, breaking the frontend. I solved this by enabling Groq's native response_format={"type": "json_object"} and writing robust regex extractors.

Another challenge was handling the dynamically loaded AJAX content. When the script generator button was injected into the DOM via JavaScript, standard click listeners wouldn't bind. I solved this using JavaScript event delegation on the document level to capture clicks seamlessly.

Accomplishments that we're proud of

The 0–100 Demand Score algorithm, which weights Google Trends interest (60%), YouTube video velocity (25%), and log-scaled average views (15%) to give creators an objective ranking system. I'm also incredibly proud of the one-click script generation UX—it feels like magic.

What we learned

I learned how to design strict JSON system prompts for Llama 3.3 70B and how to leverage Zerops Valkey not just as a generic cache, but as a specific tool to bypass external API rate limits while keeping AI generations fresh.

Built With

Share this project:

Updates

Submission history