Inspiration

We were gonna do this anyway. PostGlider Video isn't a hackathon-only idea — it follows PostGlider's own existing principle: repurpose what a business already has before manufacturing something new. Chris (therawadvantage) has ~700 real YouTube videos and no way to search any of it. That's a real, pre-existing problem; this hackathon is just why it got built this week instead of next quarter.

## What it does Archive Assistant answers real questions about a creator's video back-catalog with cited quotes and exact timestamps — never a guess. Ask it to compile a themed video and it builds a real narrative arc from real footage (not a topic dump), which you can then edit: drag-reorder scenes, exclude ones you don't want, pull in an "optional insert" the agent almost used, or search the entire pool of everything it looked at that run. It exports a script formatted for manual video assembly, and — gated behind a real Google sign-in that restricts access to the creator's own verified account — can cut and download the actual source clip.

## How we built it Python + FastAPI backend. Gemini 3.8 Flash via google-genai, using real multi-step function-calling across two roles: a retrieval/curation agent and a separate refinement agent. ClickHouse Cloud, indexed with real transcript segments from two real creators, queried at runtime through the official self-hosted mcp-clickhouse MCP server — not a raw SQL driver. Server-Sent Events stream the agent's real tool calls live to the UI. Vanilla-JS drag-and-drop storyboard editor. yt-dlp + ffmpeg for real clip cutting. Google Identity Services for the OAuth download gate.

## Challenges we ran into

  • Confirmed live that Pictory's manual "paste script" flow can't reference existing footage — no paid API purchased, so we scoped honestly to a script + citation handoff rather than overclaiming full automation.
  • YouTube bot-detects Cloud Run's IP range aggressively; fixed with a real pasted-cookie flow, not a scraped third-party mirror site.
  • A real concurrency bug: a synchronous Gemini call was blocking the entire server's event loop, causing multi-minute silent hangs under real use — found live, root-caused, fixed, and verified two independent ways.
  • The agent sometimes over-explored, burning its own tool-call budget re-verifying results it already had — fixed with an explicit efficiency instruction.

## Accomplishments that we're proud of

  • A real editable storyboard, not a static answer — reorder, exclude, optional inserts, and a full searchable result pool so a human's own hunch is directly testable, not gated behind what the agent chose to keep.
  • Every claim in this submission was verified live, including what does not work yet — documented honestly, not hidden.
  • Two real, differently-shaped creator datasets prove this isn't one fixed pipeline.
  • A real rights guard (Google OAuth + an authorization allowlist) in front of any download, not an open scraper.

## What we learned

  • Verify a vendor's real capability against docs and live tests before designing a feature around it — saved us from building fade-duration controls and inline script directives that don't exist.
  • A single unwrapped synchronous call inside async code can take down an entire server, not just one request.
  • Real engineering iteration — finding and fixing real bugs under deadline pressure — is evidence worth including in a submission, not something to smooth over.

## What's next for PostGlider Video Wire a paid video-compositing API directly once budget allows, to go from script export to a fully rendered video. Extend indexing from a 20-video sample to a business's full back-catalog. Ship as a monthly PostGlider product add-on, per its existing roadmap.

Built With

  • clickhouse
  • clickhouse-cloud
  • css
  • docker
  • fastapi
  • ffmpeg
  • gemini-3.8-flash
  • google-cloud-run
  • google-cloud-secret-manager
  • google-gemini
  • google-genai
  • google-identity-services
  • html
  • javascript
  • mcp
  • oauth2
  • python
  • server-sent-events
  • uvicorn
  • yt-dlp
Share this project:

Updates

Submission history