Castnow streams music and movies on Chromecast

Linux Casting

© Lead Image © Kiyoshi Takahase Segundo,

© Lead Image © Kiyoshi Takahase Segundo,

Article from Issue 175/2015

Google's Chromecast device lets you stream content directly to your TV. Castnow connects to Chromecast from a Linux system.

Armed with an Android cellphone or tablet, you can easily feed content to the Chromecast dongle connected to your TV set. Just call a Chromecast-capable application, such as YouTube, Google Music, or the Vimeo Couch Mode app, tap the Chromecast icon, and a few seconds later, the desired content appears on your TV. Wouldn't it be great to be able to control Chromecast via your PC, though? Now, the Chromecast client Castnow [1] for Linux and Mac systems lets you control your Chromecast from a terminal window.

Casting with Castnow

Castnow is a command-line tool based on Node.js [2] that supports playing multimedia content on a Chromecast dongle – without having to touch an Android device. Castnow supports playing local music files or movies, YouTube clips, movies stored on the network, and even directly from torrents. The program also lets you connect to an existing Chromecast session and control it from your computer. You just need an Android or iOS device with the Chromecast application to set up the program.

The system requirements are a current version of Node.js and optionally a tool for recoding videos to Ffmpeg. On Ubuntu, you can install Node.js, including the matching package manager npm, in the Node.js package from the package sources – but even Ubuntu 14.10 has an ancient version of the framework. You will thus want to install Node.js from the PPA package source by Chris Lea [3] (Listing 1). The package source provided by NodeSource for Debian and Ubuntu [4], in contrast, takes you to a Node.js version that Castnow does not yet support.

Listing 1

Installing Castnow on Ubuntu


The Ffmpeg program for transcoding is also not entirely easy to install on Ubuntu because versions of the distribution since v12.04 rely on the Ffmpeg fork, Libav. You will have to wait for Ubuntu 15.04 "Vivid Vervet" for Ffmpeg to rejoin the package sources. Because Libav covers more or less all of the Ffmpeg feature scope, you can simply create a symlink on your system; Castnow now believes it has found Ffmpeg. Users of Arch Linux can install Node.js and Ffmpeg via the central Pacman package manager; alternatively, you will also find Castnow in the Arch User Repository AUR of late (Listing 2).

Listing 2

Installing Castnow on Arch Linux


Castnow is now ready for use. When you call it from a terminal window, as shown below, the program automatically grabs the first Chromecast dongle it finds on the network.

$ castnow <example-video>.mp4
$ castnow <example-video>.mp4 --device "<devicename>"

If you use multiple Chromecasts on your network, then you can address one of the devices specifically with the --device option. You assign a name when you set up the dongle. You are shown the name in the Chromecast app on your phone (Figure 1). The name is also displayed on the Chromecast status screen unless it is playing something.

Figure 1: The Chromecast app tells you the name that you assigned when setting up the streaming dongle.

Besides locally stored videos, Castnow also now streams web movies or YouTube clips directly off the web on your Chromecast. In addition to conventional sources, Castnow also supports BitTorrent downloads – for this to work, you need to add the URL for the torrent or a Magnet link to the Castnow command. Make sure you are not infringing on any copyrights. Because of the peer-to-peer protocol used by BitTorrent, you are automatically distributing what you download on the web. Be sure to download only non-copyrighted material in this way.

Amateur movie makers will appreciate the --tomp4 option that lets you convert virtually any video format with Ffmpeg to a format that Chromecast understands (typically H.264 or VP8). Thus, there's no need to convert movies from compact cameras or digital movie cameras to another format up front, thereby wasting storage space on your disk and potentially also wasting time. Listing 3 contains examples for populating your Chromecast with music or movies from your computer.

Listing 3

Populating Chromecast


While you are playing back a movie, you can press the Spacebar to pause; pressing it again restarts at the same point. Pressing M mutes the sound, and the Up and Down arrows increase and reduce the volume. You can tell from the cyan background how much of the movie is still missing (Figure 2). The Castnow developer has now added a feature for fast forwarding or rewinding movies with the Right and Left arrow keys. After appending multiple tracks to a pseudo-playlist, you can jump to the next title by pressing N. Pressing S quits the playback.

Figure 2: Castnow lets you stream music or movies from your computer to a TV set that has a Chromecast device connected.


As a command-line tool, Castnow logically lacks a neat interface, but it still fulfills its task well. Doing without a GUI makes the Castnow perfect for experimenting with your own developments and, for example, controlling a Chromecast device with a script. Even without a script, Castnow is very useful if you want to stream a movie on your TV set without detouring. For more complex projects, Castv2 [5] is also well worth looking into: It lets you implement Chromecast features in your own applications.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus

Direct Download

Read full article as PDF:

Price $2.95