Skip to content

Casting to Chromecast

Iain Smith edited this page Aug 28, 2026 · 1 revision

Casting to Chromecast

k opens a device picker for whatever's currently playing — a live channel, a VOD item, or a Plex movie/episode:

  • UP/DOWN/PGUP/PGDWN — move the selection
  • ENTER — connect
  • ESC — close

While already casting, reopening (k) shows a red "Disconnect" entry above the device list.

How it works

tvdinner tells the Chromecast device to fetch and play the same stream URL it's itself playing — it never proxies or transcodes. That means a codec/container the device's own receiver can't decode natively may simply fail to cast even though it plays fine locally; raw MPEG-TS (the common shape for a live IPTV channel URL) has only limited support on real Chromecast hardware.

Local playback pauses for the duration of the cast (freeing up local decode/bandwidth) and resumes automatically from the same position once you disconnect.

Installing it

Chromecast support is an optional extra, not installed by default — everything else in tvdinner works fully without it, and without it installed k just shows a message saying so instead of a device list.

From a source checkout (there's no PyPI release to pip install tvdinner[chromecast] directly from yet):

python3 -m venv .venv && .venv/bin/pip install ".[chromecast]"

This needs Python 3.11+ (pychromecast's own requirement — tvdinner itself still supports 3.10 otherwise). On Debian/Ubuntu, apt install python3-pychromecast python3-zeroconf works instead; Fedora/RHEL/ openSUSE have no distro package at all, so use sudo pip install --prefix=/usr pychromecast.

Discovery uses mDNS (UDP multicast); Windows may prompt for a firewall permission the first time k is pressed.

Everything else

Clone this wiki locally