Build this tool: Comment Intent Sorter Product folder name: Comment Intent Sorter Display title: Comment Intent Sorter PRODUCT BRIEF Desktop app that turns a messy YouTube comment dump into creator-useful buckets. Paste comments OR fetch from a video URL via YouTube Data API. Gemini classifies each comment into Reply now / Praise / Feedback / Hate / Spam / Chatter, ranks Reply now by urgency, and can draft short reply starters. Local code only counts, filters, and exports — never invents intent labels. CONTEXT Difficulty: Medium Category: Howto & Style / Creator Ops TREND HOOK Creators drown in comments. The viral beat is: "I sorted 100 comments — only 7 actually needed a reply." Show the Reply now pile lighting up while spam/hate fall away. VIDEO ANGLE Short: dump ugly comments → Reply now count is the punchline. Long: build in Cursor, paste mode demo, optional YouTube fetch, export CSV. WHY THIS TOOL No Casey tool currently fetches or sorts comments. This is community ops, not another title grader — high shareability because every creator feels the pain. STACK (standalone desktop app) - Python 3 + tkinter GUI — standalone desktop tool (not a website). - Include: comment_intent_sorter.py, casey_gemini.py, casey_youtube_setup.py, requirements.txt, run_*.bat, build_exe.bat, exports/, thumbnails/, broll/. - Smoke-test parse/video-id offline with --smoke (no API keys). GUI RULES - Casey dark palette (BG #0b0e1c, AMBER #ffab3d, TEAL #5eead4). - Brand: CASEY BUILDS IT → Comment Intent Sorter. - How to use: Paste comments or a video URL → Sort with Gemini → Reply now first. - Left: Mode, input, max comments, YouTube key, Gemini row, Sort comments. - Right: summary, filter, Treeview, detail/draft pane, Copy buttons. - Dropdowns: DarkSelect only (never ttk.Combobox, never grab_set). - WM_DELETE_WINDOW on close. APIs & KEYS - YouTube Data API key: shared %LOCALAPPDATA%\CaseyBuilds\youtube_settings.json - Gemini: shared %LOCALAPPDATA%\CaseyBuilds\gemini_settings.json - Tool prefs: %LOCALAPPDATA%\CaseyBuilds\CommentIntentSorter\settings.json - NEVER hardcode keys. NEVER silent local intent templates. - Sort REQUIRES Gemini + key — fail clearly if missing. - Network calls in a background thread; UI updates via after(...). YouTube Data API (v3) - commentThreads.list (part=snippet, videoId, order=relevance|time, pagination) - videos.list for title - Parse watch / Shorts / youtu.be / bare 11-char IDs Gemini API (required for sorting) - JSON mode classification in batches (~20) - Fields: intent, confidence, why, urgency, draft_reply (reply_now only) - Default model from shared settings (gemini-2.5-flash-lite) IMPLEMENTATION NOTES - Modes: "Paste comments" | "YouTube video URL" - Caps: fetch ≤200, classify ≤80 (note leftovers) - Export: comment_intent_{slug}_{stamp}.csv + .txt + .json under exports/ - Copy Reply now list for quick Studio replies DEMO INPUT → OUTPUT - FIELD Mode: Paste comments - FIELD Max Comments: 100 - FIELD Input: sample paste with question / praise / spam / hate / feedback - Primary button: Sort comments - RESULT Reply now | How do I install this on Windows without Python breaking? - RESULT Summary | Reply now 2 · Praise 1 · Spam 2 · Hate 1 - Do NOT type into the detail/report output box as an input field. OUTPUT CHECKLIST - [x] Main .py with GUI - [x] Shared helpers vendored - [x] BUILD_PROMPT / VIDEO_SCRIPT / MOTION_DEMO - [x] run bat + build_exe bat + requirements - [x] thumbnails/ + broll/ notes - [x] exports/ sample