explaingit

skorokithakis/catt

Analysis updated 2026-05-18

3,647PythonAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A command-line tool that sends videos from your computer or the web to a Chromecast device on your TV.

Mindmap

mindmap
  root((catt))
    What it does
      Cast videos to Chromecast
      Cast local files
      Cast websites
    Tech stack
      Python
      pychromecast
      yt-dlp
    Use cases
      Play YouTube on TV
      Auto subtitle send
      Device aliases
    Audience
      Developers
      Power users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Cast a YouTube video to your Chromecast from the terminal

USE CASE 2

Play a local video file on your TV via Chromecast

USE CASE 3

Automatically send matching subtitles when casting a video

USE CASE 4

Set default devices or short aliases in a config file for quick casting

What is it built with?

Pythonpychromecastyt-dlpcasttube

How does it compare?

skorokithakis/cattcharlesq34/pointnet2genmoai/mochi
Stars3,6473,6473,647
LanguagePythonPythonPython
Setup difficultyeasyhardhard
Complexity2/55/55/5
Audiencedeveloperresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires a Chromecast device on the same network and a Python package install.

Free to use, modify, and distribute under the BSD license.

In plain English

Cast All The Things, known as catt, is a command-line tool that lets you send videos from your computer or from online sources to a Chromecast device on your network. A Chromecast is a small dongle that plugs into a TV's HDMI port and plays streaming content. This tool gives you a way to control what it plays without going through a phone app or browser extension. The simplest use is pasting a video URL into the terminal and having it start playing on your TV immediately. It supports any website that the yt-dlp downloader supports, which covers YouTube, Vimeo, and a few hundred other video hosting services. You can also point it at a local video file on your computer and cast that directly, as long as the file format is one the Chromecast handles natively. If you have a subtitle file alongside a video, catt will detect it automatically and convert common subtitle formats to the type the Chromecast accepts before sending them over. Beyond playing video, catt can send any website to the Chromecast for display on the TV screen, and it includes commands for basic playback control such as pausing and resuming. If you own multiple Chromecasts, a configuration file lets you set a default device or create short alias names so you do not have to type the full device name each time. Installation is straightforward through standard Python package tools. The project notes that if catt stops working with a particular video site, upgrading the underlying yt-dlp package usually fixes it, since yt-dlp is updated frequently to keep pace with site changes. The project is free software released under the BSD license. It is built on top of three other open-source libraries: pychromecast for communicating with the device, yt-dlp for extracting video URLs, and casttube for the YouTube-specific Chromecast API.

Copy-paste prompts

Prompt 1
Show me how to install catt and cast a YouTube video to my Chromecast from the terminal.
Prompt 2
Write a shell script that uses catt to cast a local video file with its subtitles to my Chromecast.
Prompt 3
Explain how to set up a config file for catt so I can use a short alias for my Chromecast device.
Prompt 4
How do I troubleshoot catt if it stops working with a video site I use?

Frequently asked questions

What is catt?

A command-line tool that sends videos from your computer or the web to a Chromecast device on your TV.

What language is catt written in?

Mainly Python. The stack also includes Python, pychromecast, yt-dlp.

What license does catt use?

Free to use, modify, and distribute under the BSD license.

How hard is catt to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is catt for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.