Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 

Repository files navigation

cascade-banner

🌊 Cascade

One video in. A full week of content out.

Every creator has the same problem: you spend hours making one great video, and turning it into a TikTok, a tweet thread, and a LinkedIn post is another hour of work-- PER PLATFORM. Cascade is a web app that takes a single source video and, through real video processing, word-level speech-to-text, and multi-stage AI prompting, automatically produces a full week of platform-native content: a captioned short-form clip with AI-sourced b-roll, plus a Twitter/X thread, a LinkedIn post, an Instagram caption, and a TikTok/Reels script.

MVP πŸ†

  • Video Ingestion Pipeline: Accepts an uploaded source video and extracts audio for processing.
  • Word-Level Transcription: Speech-to-text with word-level timestamps, powering both captions and clip selection.
  • Multi-Stage AI Prompting: Structured, validated LLM outputs that (1) select the best short-form moment, (2) write platform-native posts, and (3) generate a shot/caption plan.
  • Automated Clip Assembly: FFmpeg-driven cutting, karaoke-style burned-in captions (ASS subtitle format), and AI-sourced b-roll compositing (Pexels API).
  • Platform Post Generation: Auto-generated Twitter/X thread, LinkedIn post, Instagram caption, and TikTok/Reels script from the same source video.
  • Job Status Dashboard: Async job pipeline (upload -> processing -> done) with live progress polling on the frontend.

Stretch Goals 🌟

  • Multi-Clip Selection: Detect and offer several strong candidate moments instead of just one.
  • Editable Output: Let users tweak generated captions/posts before export instead of only copy-paste.
  • Style/Tone Presets: Let users pick a voice (professional, funny, dramatic) that shifts all generated text together.
  • Direct Publishing: OAuth into platforms and post directly instead of copy/paste.
  • YouTube Link Ingestion: Accept a YouTube URL (via yt-dlp) as an alternative to a manual upload.

Milestones 🎞️

Week 1: The Setup πŸ“
  • General:
    • Decide team roles (Frontend vs Backend)
    • Set up GitHub repo, .env template, and API keys (transcription API, LLM, Pexels)
    • Everyone installs the stack and posts a working "Hello World" screenshot in the team chat (lol)
    • Read FFmpeg and yt-dlp docs now and familiarize yourself
  • Frontend:
    • Finalize UI design and UX layout (Figma)
  • Backend:
    • Make test requests to the transcription API and the LLM (confirm structured/JSON output works)
Week 2: Hello World ⚑
  • Frontend:
    • Initialize React (Vite) + TypeScript + Tailwind project
    • Build basic layout: upload area, job status area, results area (stubbed)
  • Backend:
    • Stand up FastAPI skeleton with an in-memory job dictionary
    • Build a fake background task that sleeps, updates progress a couple of times, then marks a job "done" with a fake result
    • Confirm the frontend can POST a job and poll GET /jobs/{id} through the fake stages end to end
Week 3: Real Ingestion 🎬
  • Backend:
    • Replace the fake job with real video upload handling
    • Extract audio via FFmpeg/FFprobe (subprocess, explicit CLI flags)
    • Call the transcription API and store word-level timestamps
  • Frontend:
    • Wire the upload form to the real endpoint
    • Show real (not fake) progress states as they come back
Week 4: The Brain 🧠
  • Backend:
    • Prompt engineering: summarize the transcript into a brief
    • Multi-stage prompting with structured outputs: best-moment selection, social post generation, caption/shot plan
    • Add output validation (retry or flag malformed structured responses)
  • Frontend:
    • Build UI components to display generated posts once available
Week 5: The Cut 🎞️
  • Backend:
    • Cut the selected clip with FFmpeg based on the chosen timestamps
    • Burn in word-synced captions using ASS karaoke tags
    • Pull and composite b-roll from the Pexels Videos API
  • Frontend:
    • Style the "generated clip" preview area (native HTML5 video player)
Week 6: Full Loop πŸ”„
  • Backend:
    • Connect every stage (ingest -> transcribe -> prompt -> cut -> caption -> b-roll) into one real end-to-end pipeline
    • Return the finished video + all four platform posts from a single job
  • Frontend:
    • Full integration: real upload -> real polling -> real results, no more stubs/fakes anywhere
Week 7: Everything Works βœ…
  • All:
    • Run the full pipeline against every test video the team has, back to back-- fix whatever breaks
    • NO NEW FUNCTIONALITY AFTER TONIGHT!!!!
    • Add timeouts/retries on every external API call, clear error messages (not generic "something went wrong"), transcript caching by file hash, and temp file cleanup after each job
Week 8: Polish & Reliability + Presentation Creation ✨
  • Frontend: Polish fonts/colors/spacing, fix layout bugs, add a "How it Works" section
  • Backend: Review API usage/quota limits, fix edge cases found in testing, final code review
  • All: Confirm the demo path (specific test video -> known-good output) is bulletproof, WORK ON PRESENTATION!!!
Week 9: Presentation Day Prep 🎬
  • Record a backup demo video in case live generation fails on stage
  • Practice the pitch and live walkthrough, timed
  • Freeze the repo--no last-minute changes the night before presentation

Tech Stack πŸ’»

IDE: VSCode
Version Control: Git / GitHub
Design: Figma

Frontend

  • Framework: React (Vite) + TypeScript
  • Styling: Tailwind CSS
  • State Management: Zustand
  • Icons: Lucide React
  • Playback: Native HTML5 <video> element

Backend & AI

  • Runtime/Framework: Python + FastAPI
  • Async Jobs: FastAPI BackgroundTasks + in-memory job dictionary
  • Validation: Pydantic
  • Media Processing: FFmpeg / FFprobe (subprocess, explicit CLI flags)
  • Captions: ASS subtitle format with karaoke tags for word-synced highlighting
  • Transcription: Hosted speech-to-text API with word-level timestamp granularity
  • LLM: OpenAI or Google Gemini (Flash)-- structured outputs, multi-stage prompting
  • Stock Footage: Pexels Videos API (free tier: 200 req/hour, 20,000/month)
  • Storage: Local filesystem (S3 if time allows)

Deployment

  • Local for the demo
  • If hosted: a container-based host that supports long-running processes and FFmpeg (Render, Railway, Fly.io)-- not Vercel/Netlify, which time out before a render finishes and don't ship FFmpeg

Helpful Resources πŸ”Ž

Frontend:

Backend:

Media Processing:

AI & APIs:

Software to Install:

Developers 🐸

  • Abhishri Dave
  • Fawaz Jamshed
  • Kashmine Zadia Shaik
  • Manila Cholleti
  • Sai Varun Mallela

Project Manager: Mohammad Mehrab
Industry Mentor: Jackson Parrish

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors