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.
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
ffmpegon your system:brew install ffmpeg(macOS) orapt 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
- Discovers Chromecast devices on your network via mDNS/Zeroconf
- Probes the video file — if it's already MP4/H.264, streams it directly
- If not, transcodes to H.264+AAC using ffmpeg with HLS segmentation
- Serves segments over HTTP as they're encoded — playback starts in seconds
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bbc4bd303368f3926621654ac21d07e27bd4348eccf01c853872640e4f5457c
|
|
| MD5 |
427e8e82ce1bde6157a38c74ce2ab86c
|
|
| BLAKE2b-256 |
ba53c5cf5c04415417a0393680dfe57694f4c678bade7d8c7d0ae3024b2f73b0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be06320e7769bacd8eafa7c180e37f3599076ad1c2b1cea681f47f01d510edab
|
|
| MD5 |
18373a37572ffcd68402401bfa427bf0
|
|
| BLAKE2b-256 |
37785a5a6c3ab47aeb75a028c80fd6eb54f0282bab7ee735ae13aed66e25b958
|