Status: In Development
Phase: Phase 5 (AI Media) | Tier: Pro / Studio
Overview
You just uploaded a dispensary receipt with three strains. High IQ generates a research report breaking down the terpene profiles, effects forecasts, High Family classifications, and similar strain recommendations for each one. Right now, that report is text. Detailed, useful, intelligent text — but still text. Video Reports turn that text into a narrated visual presentation. Instead of reading your report, you watch it. An AI narrator walks through the findings while data visualizations, terpene charts, High Family badges, and strain comparisons animate on screen. It is your personal cannabis briefing, produced on demand, every time you log an order. Two formats serve two distinct use cases. The Share Clip is a 30-60 second highlight reel designed for Instagram Reels, TikTok, iMessage, and group chats — punchy, visual, and immediately interesting to anyone who sees it. The Full Briefing is a 2-3 minute deep dive that covers everything the text report covers, but in a format that is easier to absorb while doing something else. You can watch your briefing while rolling a joint, commuting, or waiting for your edible to kick in. The critical insight is personalization. This is not a generic “Blue Dream strain review” video that could exist on YouTube. This video mentions you by name, references your purchase history, compares this strain to others you have tried, and highlights how this order fits into your broader consumption patterns. That level of personalization is what makes it shareable — “look at what my cannabis app just made for me” — and what makes it impossible for competitors to replicate without the same data infrastructure.What It Does
Share Clip (30-60 seconds)
- Opens with the user’s name and the order date: “John, here’s a quick look at your January 15th pickup”
- Highlights the standout strain from the order — the one with the most interesting terpene profile or the highest match score
- Shows a terpene visualization that animates the dominant terpenes
- Displays the High Family badge with a one-sentence explanation
- Ends with a branded outro and deep link back to the full report
- Optimized for vertical video (9:16) for Stories and Reels
- Includes subtitles/captions baked into the video for silent autoplay
Full Briefing (2-3 minutes)
- Structured narration matching the report sections: Overview, Strain Breakdown, Terpene Analysis, Effects Forecast, Similar Strains, Medical Research
- Each section has its own visual treatment — charts for terpenes, cards for similar strains, quotes for research highlights
- Pauses on key insights: “This is interesting — your Blue Dream has unusually high Myrcene, which means…”
- Compares to previous orders when history exists: “Last month you went heavy on sativas. This order is all indica-dominant — here’s what that shift means…”
- Available in both vertical (mobile-first) and horizontal (full-screen) formats
- Downloadable as MP4 for sharing or saving
User Value
Technical Approach
The video reports system uses a provider-agnostic architecture with swappable video providers. This means the core pipeline (data preparation, storage, delivery) stays the same regardless of which service generates the actual video. Providers can be added, removed, or swapped without redeploying the app.- v1 uses NotebookLM for educational deep-dive narration — a conversational, podcast-style walkthrough of your report findings
- Future providers: Runway (cinematic visuals), Kling (animated data visualizations), and others can be plugged in as they mature
- Configuration is stored in Convex, enabling hot-reloading of provider settings without app deploys
Architecture
| Layer | Technology | Notes |
|---|---|---|
| Script Generation | LLM (Claude or GPT-4) | Converts structured report data into a natural narration script with timing cues |
| Text-to-Speech | ElevenLabs or similar | Natural-sounding narration with personality; configurable voice/tone |
| Visual Rendering | NotebookLM (v1) / Swappable provider | Provider-agnostic architecture; v1 uses NotebookLM for educational narration, future providers (Runway, Kling) can be swapped in |
| Data Visualization | Custom components | Terpene wheels, High Family badges, comparison cards, effect meters |
| Video Assembly | FFmpeg or cloud rendering | Combines narration audio with visual track, adds subtitles, renders final MP4 |
| Storage & CDN | Supabase Storage + CDN | Cached for repeat views; keyed by report ID |
| Delivery | HLS streaming or direct MP4 | Stream in-app; download for sharing |
Generation Pipeline
Report Completion Trigger
When a research report finishes generating, a Trigger.dev task is queued for video generation. The user sees a “Video generating…” indicator with estimated time.
Data Preparation
The Trigger.dev task gathers structured report data (strain profiles, terpene breakdowns, effect forecasts, spending data) and formats it for the active video provider. Provider configuration is read from Convex at runtime, enabling hot-reloading without deploys.
Provider Rendering
The prepared data is sent to the configured video provider (NotebookLM for v1). The provider generates the video content — narration, visuals, and assembly — according to its own pipeline. The provider-agnostic interface means swapping to Runway, Kling, or another provider requires only a config change.
Key Technical Challenges
- Generation time — Video rendering is slow. Even with cloud infrastructure, a 2-3 minute video might take 2-5 minutes to produce. The UX must set expectations (progress indicator, push notification when ready) rather than pretend it is instant.
- Visual quality — Programmatic video (Remotion-style) looks polished and consistent but cannot match cinematic AI video generation (Runway-style). The choice is between control and aesthetics. Starting with Remotion for v1 (reliable, deterministic) and exploring AI video for v2 (more impressive but less controllable) is the safer path.
- Narration naturalness — The script needs to sound like a person talking, not a report being read aloud. The LLM prompt must emphasize conversational transitions: “Now here’s what’s interesting…” rather than “Section 3: Effects Forecast.”
- Cost per video — A 2-minute video with TTS narration and cloud rendering could cost 2.00 per generation. At 4 reports/month per active subscriber, that is 8/month in video costs alone — significant but manageable within Pro pricing.
- Storage — Video files are large (10-50MB per clip). CDN costs accumulate with user base growth. Implement retention policies (keep for 90 days, re-generate on demand) and compression optimization.
Tier Impact
| Tier | Access |
|---|---|
| Free | See a blurred video thumbnail on the report page. Tap to see a 5-second frozen preview frame with a “Pro” badge overlay. |
| Pro | Full access to Share Clips and Full Briefings for every report. Unlimited downloads and shares. |
| Studio | Priority rendering queue (videos ready in under 60 seconds), choice of narrator voice, custom intro/outro, extended formats (5+ minutes for multi-order compilations). |
Dependencies
- Research report generation pipeline — built and live
- Strain data and terpene profiles — built and live
- Trigger.dev task infrastructure — built and live
- Narration script generation prompt (LLM)
- TTS integration (ElevenLabs or similar)
- Remotion video rendering pipeline (or equivalent)
- Data visualization components for video (terpene charts, badges, cards)
- CDN storage for video files
- Push notification for “video ready” event
- Video player component in mobile app
Resolved Questions
- Programmatic video vs. AI video — Resolved: v1 uses NotebookLM for educational narration. The provider-agnostic architecture means cinematic providers (Runway, Kling) can be swapped in for future versions without pipeline changes.
- Pre-generation vs. on-demand — Resolved: Videos auto-generate after text report completion via Trigger.dev task. Users receive a push notification when the video is ready (2-5 minutes).
- Video provider architecture — Resolved: Provider-agnostic design with config stored in Convex for hot-reloading. No deploys needed to switch providers.
Open Questions
- Narrator voice selection — One default voice, or let users choose? Multiple voices increase perceived personalization but add complexity. Could be a Studio tier feature.
- Share Clip length — 30 seconds for Reels/TikTok compatibility, or 60 seconds for more substance? Platform optimal lengths vary. Could offer both.
- Subtitle language — English only for v1? The narrator speaks English, but subtitles could be translated for non-English speakers at low cost. Worth exploring for international reach.
Related Features
- AI Podcasts — Audio-only alternative; lower cost, different consumption context
- AI Music Videos — Combines video with AI-generated music for premium format
- Report Sharing — Infrastructure for distributing Share Clips
- Share Cards — Static visual sharing format; video is the animated evolution
- Blog AI Content — Same video pipeline applied to blog articles
