NovaStream is a fully autonomous, AI-powered television network.
It continuously monitors the internet for breaking news, transforms headlines into
cinematic short-form video episodes β complete with scripted scenes, voiceover narration,
and matched stock footage β then broadcasts them live, 24/7, with zero human intervention.
NovaStream is an end-to-end agentic media pipeline built on Amazon Nova foundation models via AWS Bedrock. Give it the internet, and it gives you a television channel.
Every few minutes, the system:
- π° Fetches breaking news headlines from the live web
- π¬ Produces a fully scripted, multi-scene episode using Amazon Nova 2 Lite
- ποΈ Voices the narration scene-by-scene using Amazon Nova 2 Sonic (TTS)
- ποΈ Casts matching cinematic stock footage via the Pexels API
- βοΈ Edits everything into a final broadcast-ready video with FFmpeg
- π‘ Broadcasts the episode live to a web player over WebSockets
NovaStream is purpose-built around Amazon Nova, AWS's latest generation of frontier foundation models. Nova models are invoked through Amazon Bedrock β AWS's fully managed AI platform β and power every creative and generative step of the pipeline.
| Nova Model | Model ID | Role in NovaStream |
|---|---|---|
| Amazon Nova 2 Lite | us.amazon.nova-2-lite-v1:0 |
The Showrunner β takes a raw news headline and produces a structured JSON production blueprint: scene count, scripts, visual themes, and narration copy |
| Amazon Nova 2 Sonic | us.amazon.nova-2-sonic-v1:0 |
The Voice Actor β performs hyper-realistic Text-to-Speech synthesis, narrating each scene with natural intonation and broadcast-quality audio |
Why Amazon Nova?
- Speed β Nova Lite delivers sub-second structured JSON generation, keeping the pipeline latency low enough for continuous broadcasting.
- Quality β Nova Sonic produces broadcast-quality voice output indistinguishable from a professional narrator.
- Cost Efficiency β Nova's competitive token pricing makes running a 24/7 autonomous pipeline economically viable.
- Bedrock Integration β Seamless
boto3integration means no custom inference servers, no model hosting, and no ops overhead.
AWS Bedrock βββΊ Amazon Nova 2 Lite (Showrunner: script & scene generation)
βββΊ Amazon Nova 2 Sonic (Voice Actor: TTS narration synthesis)
AWS IAM βββΊ Secure credential management via boto3 / STS
graph TD
A[π° NewsAPI<br/>Breaking Headlines] --> B
subgraph "π€ Agent Pipeline (Python / FastAPI)"
B[π¬ Showrunner Agent<br/>Amazon Nova 2 Lite] --> C
C[π Casting Director<br/>Pexels API + Ranking] --> D
D[ποΈ Voice Actor Agent<br/>Amazon Nova 2 Sonic] --> E
E[βοΈ Editor Agent<br/>FFmpeg]
end
E --> F[βοΈ Supabase Storage<br/>Episode CDN]
E --> G[π‘ WebSocket Broadcaster]
G --> H[π₯οΈ Next.js Live Player<br/>localhost:3000]
G --> H[π₯οΈ Next.js Live Player<br/>novaaastream.vercel.app]
| Agent | File | Responsibility |
|---|---|---|
| Showrunner | agents/showrunner.py |
Nova 2 Lite prompt β structured JSON episode blueprint |
| Casting Director | agents/casting.py |
Query expansion + Pexels video search + quality ranking |
| Voice Actor | agents/voice.py |
Nova 2 Sonic streaming TTS β per-scene .mp3 audio |
| Editor | agents/editor.py |
FFmpeg scene stitching β final .mp4 broadcast episode |
| Broadcaster | broadcaster.py |
WebSocket push of episode metadata + video URL to frontend |
| Layer | Technology |
|---|---|
| AI Models | Amazon Nova 2 Lite, Amazon Nova 2 Sonic (via AWS Bedrock) |
| Backend | Python 3.11, FastAPI, Asyncio, WebSockets |
| Video Processing | FFmpeg 6.0+ |
| Frontend | Next.js 14, React, Tailwind CSS |
| Storage | Supabase Storage |
| External APIs | NewsAPI, Pexels Video API |
| Infrastructure | Docker, docker-compose, Render |
- Python 3.11+
- Node.js 20+
- FFmpeg 6.0+ β
brew install ffmpeg(macOS) /apt install ffmpeg(Linux) - AWS credentials with
us-east-1Bedrock access (Nova 2 Lite + Nova 2 Sonic) - Supabase project with a storage bucket
- Pexels API key
- NewsAPI key
git clone https://github.com/your-username/novastream.git
cd novastream
cp .env.example .envEdit .env with your credentials:
# AWS (Bedrock β Nova models)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_DEFAULT_REGION=us-east-1
# Nova model IDs
NOVA_LITE_MODEL_ID=us.amazon.nova-2-lite-v1:0
NOVA_SONIC_MODEL_ID=us.amazon.nova-2-sonic-v1:0
# External APIs
NEWSAPI_KEY=...
PEXELS_API_KEY=...
# Supabase Storage
SUPABASE_URL=...
SUPABASE_SERVICE_ROLE_KEY=...
SUPABASE_BUCKET=...
β οΈ .envis gitignored β your AWS keys will never be accidentally committed.
docker-compose up --buildBackend:
cd backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python main.pyFrontend (new terminal):
cd frontend
npm install
npm run devOpen http://localhost:3000 β the infinite broadcast is live. πΊ
| Variable | Description | Default |
|---|---|---|
NOVA_MAX_SCENES_PER_EPISODE |
Cap scenes per episode (cost control) | 2 |
SHOWRUNNER_MAX_TOKENS |
Max tokens for Nova Lite generation | 500 |
SHOWRUNNER_TEMPERATURE |
Nova Lite creativity (0.0β1.0) | 0.4 |
SHOWRUNNER_MAX_RETRIES |
Retry attempts on Bedrock failure | 1 |
π‘ Cost Tip: Keep
NOVA_MAX_SCENES_PER_EPISODE=2during development to minimize Bedrock token usage.
Built for the Amazon Nova AI Hackathon β March 2026.
- π§ Agentic AI β Fully autonomous multi-agent pipeline with no human checkpoints
- ποΈ Multimodal Generation β Cross-model pipeline spanning text (Nova Lite), speech (Nova Sonic), and video (FFmpeg + Pexels)
- π‘ Real-Time Streaming β Live WebSocket broadcast of AI-generated television
This project is licensed under the MIT License β see the LICENSE file for details.