Skip to main content

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

Metadata

Release files for castlocal 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for castlocal 0.1.0
File Size Uploaded
castlocal-0.1.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for castlocal 0.1.0
File Interpreter ABI Platform
castlocal-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / castlocal-0.1.0.tar.gz

Download URL castlocal-0.1.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
0bbc4bd303368f3926621654ac21d07e27bd4348eccf01c853872640e4f5457c
BLAKE2b-256 checksum
How to use checksums
ba53c5cf5c04415417a0393680dfe57694f4c678bade7d8c7d0ae3024b2f73b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / castlocal-0.1.0-py3-none-any.whl

Download URL castlocal-0.1.0-py3-none-any.whl
Size 29.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
be06320e7769bacd8eafa7c180e37f3599076ad1c2b1cea681f47f01d510edab
BLAKE2b-256 checksum
How to use checksums
37785a5a6c3ab47aeb75a028c80fd6eb54f0282bab7ee735ae13aed66e25b958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page