Inspiration
We run a faceless AI video studio — multiple YouTube channels, dozens of Veo clips a week. One night we found the same 8-second clip stored four times across our archive under different names. The clip cost money to generate; the copies cost money to confuse us. Cloud drives store outputs. Nobody was storing the thing that actually made them: the recipe — prompt, model, parameters, lineage.
What it does
RecipeVault is a vault for AI-generated media where the recipe is the asset:
- Collect: drop a finished clip in — it's SHA-256 content-addressed, uploaded to Backblaze B2, and sealed with a Genblaze provenance manifest carrying its full recipe (prompt, model, params, parent).
- Dedup before you pay: identical content is blocked before upload — the savings widget counts every blocked duplicate (in dollars for generated clips, in storage for imports), and every event is drillable to the exact block.
- Recipe cards: search your vault by prompt, model, or hash. Every clip shows the recipe that made it.
- One-word regeneration: edit "kitchen" → "greenhouse" on a card and hit Regenerate. An async job runs live Veo 3.1 (
queued → generating (Ns…) → donewith a live elapsed counter — honest states, no fake instant AI), and the new clip is born with a parent link in its manifest. - Prove without revealing: every asset gets a public verify page — hash, model, timestamp, lineage are public; the prompt stays redacted (verifiable via prompt_hash, owner-toggleable). Your provenance is public; your trade secrets are not.
Real numbers from our real studio: we scanned our production archive — 562 clips, and 49 of them were duplicate copies. Replaying that archive through RecipeVault blocked 36 duplicate ingests — 0.2 GB of duplicate storage, and $4.80 of would-be Veo re-generation (at today's veo-3.1-fast rate). We first computed that as $43.20 by pricing every duplicate as an AI regeneration — then caught ourselves: most of those duplicates were imported stock, not generated clips. The honest number is smaller. The vault labels the difference, and so do we.
How we built it
- Genblaze SDK (
Pipeline.ingest→ObjectStorageSink→S3StorageBackend.for_backblaze): every asset enters through Genblaze and exits with a signed provenance manifest on B2. The manifest is our database of record — SQLite is just an index. - Backblaze B2: content-addressed asset store (
assets/xx/yy/<sha256>.mp4) + manifest store. The bucket is private; the app serves time-limited presigned URLs. B2's free egress (up to 3x monthly storage) is what makes public verify links economically sane. - FastAPI backend with an async job worker (real Veo 3.1 generation via Vertex AI), daily generation caps, and a judge-friendly demo mode (per-session cap with honestly-labeled cached fallback). The public demo is a single-owner instance — the owner API is intentionally open so judges can poke it.
- React + Vite frontend: vault grid with lazy-loaded previews, recipe cards, live job states, savings drilldown, verify pages.
- AI models used: Google Veo 3.1 (
veo-3.1-fast-generate-001andveo-3.1-generate-001) for video generation. The demo vault is our real production archive, honestly labeled: Veo clips with full recipes, legacy clips whose recipes predate the vault (labeled — losing them is why we built this), and imported stock clips (labeled with source queries, not recipes). A real studio archive is mixed; honest labeling is the product. - Knowledge is ours from months of studio operation; all code in this repo was written during the submission period.
Challenges we ran into
Genblaze is brand new and moving fast — we built on v0.4.0, and v0.5.0 shipped mid-hackathon carrying the fixes from our bug report — and we drove it somewhere new: Vertex AI auth mode. The VeoProvider crashed on poll ('str' object has no attribute 'name') and called a Gemini-Developer-only download API. We isolated three distinct bugs, filed issue #136 with repro code and our working fixes — and the maintainer merged PR #137 fixing all three the same day, acknowledging the external report. We believe we're the first team to push this SDK through Vertex to production.
Accomplishments that we're proud of
- A vault where provenance isn't a feature — it's the storage layout.
- Honest async UI: the regeneration in our demo is a real Veo 3.1 run, and the cut is labeled on screen — "about a minute later — real Veo 3.1, shown honestly" — because that's what production readiness looks like.
- $4.80 saved is a small number. It's also a true number, measured on our own archive — we caught and corrected our own $43.20 overcount, because a provenance product that inflates its own metrics has no business existing. And it compounds weekly for any team that generates at volume.
- Upstream contribution merged into the SDK this hackathon is about.
What's next
Multi-provider recipes (Lyria audio, image models), team vaults with per-member disclosure policies, and a CLI agent that watches your studio's output directory — because ours already wants it.