CineScribe is an advanced multi-modal video intelligence agent that extracts visual and audio event timelines from video clips and translates them into styled captions (Formal, Sarcastic, Humorous Tech, and Humorous Non-Tech) using serverless Fireworks AI models.
- 2-Stage Video Intelligence Pipeline:
- Visual-Audio Feature Extraction: Segments videos, extracts key frames at scene midpoints, parses scenes using Kimi K2.6 VLM, and transcribes speech using Whisper.
- Stylistic Translation: Ingests chronological event sequences and synthesizes creative, tone-aligned captions using DeepSeek V4 Flash.
- Robust Parsing & Fallbacks: Resilient visual parser with automatic retry logic and fallback parameters.
- Dockerized Compliance: Reads input from
/input/tasks.jsonand outputs results to/output/results.jsonmatching the hackathon harness schema.
Ensure you have Python 3.12+ installed. Clone the repository and install dependencies:
git clone https://github.com/urlsandcodes/cinescribe.git
cd cinescribe
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install package
pip install -e .Copy the environment example file and fill in your Fireworks API credentials:
cp .env.example .envOpen .env and populate your FIREWORKS_API_KEY.
Process a video directly from a remote URL or local path:
python -m app.main "https://storage.googleapis.com/amd-hackathon-clips/3044693-uhd_3840_2160_24fps.mp4"To run tasks directly from a task list:
python -m app.main --tasks-path input/tasks.json --results-path output/results.jsonCineScribe is fully containerized and compatible with linux/amd64 target VMs.
docker build -t cinescribe:latest .(If building on Apple Silicon, use docker buildx build --platform linux/amd64 -t cinescribe:latest .)
Place your task specs in a local directory input_test/tasks.json and run:
docker run --rm \
-v "$(pwd)/input_test:/input" \
-v "$(pwd)/output_test:/output" \
cinescribe:latestThe styled caption outputs will be written directly to output_test/results.json matching the submission schema.
