Build this tool: Trend Radar - A "What Game Is Blowing Up Right Now" Tracker for Gaming Creators Product folder name: What Game Is Blowing Up Right Now Tracker PRODUCT BRIEF A simple web app where Casey (or users) paste/import a CSV or connect a YouTube Data API key; the tool clusters recent trending gaming video titles/tags by game name, shows a "velocity score" (view count growth vs. days since upload) and flags which games are trending up vs. already saturated. Ships as a static dashboard refreshed daily via a scheduled script. CONTEXT Difficulty: Medium Category: Gaming TREND HOOK Meccha Chameleon, Verity, Animal Hospital, and Photomaly all appear across multiple unrelated channels within the same 48-hour window — clear sign of a trend wave creators are racing to catch. VIDEO ANGLE Short: "I built a tool that tells you which game to play BEFORE it blows up" showing 3 games flagged early. Long video: build log in Cursor, then backtest it against last month's trends to prove it would've called Meccha Chameleon early. WHY THIS TOOL Pure SEO/trend-ops tool that's genuinely useful to the entire gaming creator niche, easy demo hook. STACK (standalone desktop app) - Python 3 + tkinter GUI — standalone desktop tool (not a website). - Even if the brief says "web app" / "site", ship a Python desktop GUI for v1. - Include: main .py, requirements.txt, run_*.bat, build_exe.bat (PyInstaller), and an exports/ folder for saved output. - Smoke-test core logic offline without requiring live API keys when possible. GUI RULES - Clean, readable dark or light UI — pick one consistent palette (no brand lock-in required). - Clear app title / hero name derived from the product folder name. - Short muted "How to use: …" line under the title (one sentence: what to enter → what button → what you get). - Prefer real inputs (paste URL / fields / text) over fake demos. - No sample dropdowns or canned demo datasets unless explicitly requested. - Dropdowns: NEVER ttk.Combobox (unreadable on Windows dark UI). Use DarkSelect (preferred, no grab_set) OR dark-styled tk.OptionMenu (BG_ELEVATED / TEXT / active #243056 / BORDER+TEAL highlight; style the popup menu the same way). Never use grab_set (breaks close behavior on Windows). - Handle window close with WM_DELETE_WINDOW. - One job per tool; working copy/export; avoid overbuilt dashboards. APIs & KEYS - Never hardcode API keys or secrets into source or the packaged EXE. - Store keys in a local user settings JSON under %LOCALAPPDATA%\\ (or a single shared settings file if multiple tools share a key). - Label each key field clearly in the UI (e.g. YouTube API key vs Gemini API key). - Local/offline logic must work first; APIs are optional enhancements where possible. - Call network APIs in a background thread; update the UI with after(...). On failure, keep local results and show a clear error. YouTube Data API (v3) - Add a shared YouTube Data API key field (these tools do not use OAuth). - Use for: video/channel/playlist lookups, titles, descriptions, tags, statistics, search as needed by the brief. - Prefer paste-a-URL / channel-ID inputs; parse video IDs from common YouTube URL formats. - If captions/transcripts are needed, use the captions endpoint or a documented fallback (manual paste) when captions are disabled. - Respect quotas; cache responses during a session when useful. Gemini API (optional copy / polish) - Add Gemini (AI-first for paste-ready copy) when the tool WRITES language creators will paste online (titles, captions, descriptions, pinned comments, end-cards, disclaimers, SEO templates). - UI: API key field + Model text field + checkbox like "Use Gemini" / "Polish with Gemini". - Default model: gemini-2.5-flash-lite. Also accept typed model ids (e.g. gemini-3.1-flash-lite). - Do not hardcode the model URL/path; pass the Model field value into the generate call. - Pattern: Gemini writes paste-ready copy first when enabled. Local templates/scores are the fallback if Gemini is off or fails. - On Gemini failure: keep local output, show error, do not wipe results. - Flash Lite is enough for short creative jobs — do not default to Pro. Other APIs (only if the product brief needs them) - Roblox: if the brief needs group/game data, use public Roblox APIs or documented endpoints; allow manual ID paste if API is blocked. IMPLEMENTATION NOTES - Match the product brief closely; keep v1 focused on one job. - Support Copy and/or Export of results where useful (TXT/CSV/JSON as fits the tool). - Validate inputs; show empty/error states clearly. - If scoring/grading: show score + short explanation of what failed/passed. - If generating copy: show multiple variants when the brief asks for them. DEMO INPUT → OUTPUT (from live scan) - Region: US - Max Results: 25 - Primary button: Fetch YouTube Gaming trends - Result 1: Hot · Meccha Chameleon | 164.8K/d | 3 channels / 3 videos (The "Hidden Gem" hook: Low channel count, high velocity) - Result 2: Hot · Minecraft | 138.6K/d | 2 channels / 2 videos (The "Classic Resurgence" hook: Established title seeing sudden spike) - Result 3: Hot · Verity | 42.4K/d | 2 channels / 2 videos (The "Indie Breakout" hook: Rapid growth in niche horror) - Result 4: Watch · Animal Hospital | 26.7K/d | 2 channels / 2 videos (The "Cozy Trend" hook: High engagement, low saturation) - Result 5: Watch · Photomaly | 23.2K/d | 2 channels / 2 videos (The "Viral Tool" hook: Utility-based gaming content) - Result 6: Saturated · Fortnite | 161.9K/d | 6 channels / 6 videos (The "Avoid" hook: High velocity but market is fully crowded) OUTPUT - Runnable standalone Python app - requirements.txt + run bat + optional EXE build script - In-app how-to line - Example of typical input → output (in README or comments, not fake UI samples)