Skip to content

Retro Weather Rewind

A weather channel that never signs off. Live data goes in, 90s-style broadcast segments come out, and the result streams around the clock to YouTube, Twitch, Kick — and straight to your television.

Live Python ffmpeg Flutter AWS

Watch the channel How it's built

A 1980s CRT set displaying a national surface analysis map, surrounded by printed weather charts and a lit desk lamp.

What it does

A channel that never signs off

A headless browser and an encoder render and push live weather around the clock, complete with clock bug, CRT scanlines and a music bed.

Your town, on air

A localized renderer puts your own and neighbouring towns into the broadcast — and the phone app embeds that same renderer, so it matches the stream frame for frame.

A full segment lineup

Extended and hourly forecasts, regional observations, radar, severe weather and SPC outlooks, tropical updates, tides and beach report, almanac and program guide — each its own renderer.

Straight to your TV

An independent encoder feeds an HLS stream through S3 and CloudFront, giving living-room devices a playable manifest and a Roku feed.

Send in your photos

Viewers upload straight to storage with size limits and iPhone HEIC support, a moderation pass decides what airs, and an email lets you know when your shot made the broadcast.

Clips that post themselves

Vertical clips are cut automatically and scheduled out to TikTok, YouTube Shorts, X and Facebook without anyone touching an editor.

A look at it

retroweatherrewind.com — the live channel caught mid-broadcast: a travellers' forecast segment on air, with the weather alert crawl running underneath. Click the image to enlarge.

How it's built

Python pulls the weather data and renders every frame and overlay, served as player pages. A headless Chromium on a virtual display shows those pages, and one encoder screen-grabs it for the live platforms while a second, deliberately independent encoder produces the HLS feed for televisions — so a problem with one never takes the other down. The whole plant runs as supervised services with timers and a watchdog.

Rendering
Python with Pillow, OpenCV and MoviePy; Flask player pages
Broadcast plant
ffmpeg, Xvfb and headless Chromium, supervised by systemd units and timers
Distribution
RTMP to YouTube, Twitch and Kick; HLS via S3 and CloudFront; Roku Direct Publisher feed
Narration
Neural text-to-speech for spoken bulletins
Mobile app
Dart and Flutter, sharing the broadcast renderer through a web view
Data sources
National Weather Service alerts, SPC outlooks, NEXRAD radar, forecasts, tides and climate records
Status
Running in production and streaming continuously

Back to all projects

See it running

The channel is live right now — the quickest way to see what the pipeline actually produces.

Watch the channel