Files, URLs, screens, webcams, browser pages — qast normalizes everything into one continuous H.264 stream and delivers it to Chromecast, DLNA, or Roku devices from a single CLI.
pip install qast[all]
Python 3.8+ · requires ffmpeg
qast handles the hard parts — format negotiation, codec transcoding, protocol switching, and timestamp continuity — so you don't have to.
YouTube, local files, desktop capture, webcam, individual windows, browser pages, RTSP cameras, HLS streams, piped data. Over 1,000 sites via yt-dlp.
Chromecast (protobuf/TLS), DLNA (SOAP/UPnP), and Roku (ECP). Auto-discovers devices on your LAN. One command, zero config.
Every input is normalized to H.264 Main / AAC in MPEG-TS. This guarantees playback on every TV without format guessing or negotiation failures.
Chain multiple sources with per-item durations, loop, shuffle, and playlist files. Seamless transitions with PTS rewriting.
Three-line one-shot casting or full queue control with Qast(). Build scheduled playback, signage, and automation.
Video frame counting in MPEG-TS for bitrate-independent timing. 64 MB ring buffer with content-time throttling. No gaps, no glitches.
Every source follows the same path. Mixed inputs produce one continuous, TV-compatible stream.
If it produces video, qast can put it on your TV.
From one-liners to programmatic queue management.
qast auto-discovers devices and drives the right protocol. You never think about it.
| Chromecast | DLNA | Roku | |
|---|---|---|---|
| Discovery | mDNS / DNS-SD | SSDP multicast | SSDP multicast |
| Signaling | Protobuf / TLS | SOAP / UPnP | ECP / HTTP |
| Container | Fragmented MP4 | MPEG-TS | MPEG-TS |
| TVs | Chromecast, Android TV, Google TV | Samsung, LG, Sony, most smart TVs | All Roku devices |
| Dependency | pychromecast | None (built-in) | None (built-in) |
Install qast, point it at a URL or file, and it's on your TV.