Skip to main content

Cast any local video to Chromecast — CLI and retro TUI

Project description

CastLocal

Cast any local video to Chromecast — from your terminal.

A CLI and retro TUI (Far Manager-style) for streaming local video files to Chromecast devices. Handles format conversion automatically with hardware-accelerated transcoding.

castlocal demo

Why?

  • VLC's Chromecast support is broken. Tab casting kills quality. This just works.
  • Plays any format — MKV, AVI, MOV, WMV, FLV, and more. Transcodes on-the-fly.
  • Hardware-accelerated H.264 encoding (VideoToolbox on macOS).
  • Starts playing in seconds via HLS streaming — no waiting for full transcode.
  • Two interfaces: quick CLI or a keyboard-driven TUI with a dual-pane file manager.

Install

pipx install castlocal

Or with pip:

pip install castlocal

Requires ffmpeg on your system: brew install ffmpeg (macOS) or apt install ffmpeg (Linux).

Usage

CLI — cast a file directly

cast movie.mkv                  # auto-discovers device
cast movie.mp4 -d "Living Room" # target a specific device
cast -l                         # list available devices

Playback controls: [p]ause [f/b] ±30s [+/-] volume [q]uit

TUI — Far Manager-style interface

cast-tui
  • Left pane: browse local files (video files highlighted in green)
  • Right pane: discovered Chromecast devices (shown as folders)
  • F5 to cast, F8 to stop, F9 to rescan, F3 for file info

Navigate with arrow keys, Tab to switch panes, Enter to select.

How It Works

  1. Discovers Chromecast devices on your network via mDNS/Zeroconf
  2. Probes the video file — if it's already MP4/H.264, streams it directly
  3. If not, transcodes to H.264+AAC using ffmpeg with HLS segmentation
  4. Serves segments over HTTP as they're encoded — playback starts in seconds
  5. Casts to the device with full playback controls

Supported Formats

Native (no transcode) Transcoded on-the-fly
.mp4 .m4v .webm .mkv .avi .mov .wmv .flv .ts .m2ts

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

castlocal-0.1.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

castlocal-0.1.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file castlocal-0.1.0.tar.gz.

File metadata

  • Download URL: castlocal-0.1.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for castlocal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0bbc4bd303368f3926621654ac21d07e27bd4348eccf01c853872640e4f5457c
MD5 427e8e82ce1bde6157a38c74ce2ab86c
BLAKE2b-256 ba53c5cf5c04415417a0393680dfe57694f4c678bade7d8c7d0ae3024b2f73b0

See more details on using hashes here.

File details

Details for the file castlocal-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: castlocal-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for castlocal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be06320e7769bacd8eafa7c180e37f3599076ad1c2b1cea681f47f01d510edab
MD5 18373a37572ffcd68402401bfa427bf0
BLAKE2b-256 37785a5a6c3ab47aeb75a028c80fd6eb54f0282bab7ee735ae13aed66e25b958

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page