Castnow streams music and movies on Chromecast
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  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  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  (Listing 1). The package source provided by NodeSource for Debian and Ubuntu , in contrast, takes you to a Node.js version that Castnow does not yet support.
Installing Castnow on Ubuntu
### Installing Castnow on Ubuntu as of 12.04 $ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs git libav-tools $ sudo ln -s /usr/bin/avconv /usr/local/bin/ffmpeg ### Installing or updating Castnow $ sudo npm install castnow -g ### Uninstalling Castnow $ sudo npm uninstall castnow -g
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).
Installing Castnow on Arch Linux
### Installing Castnow on Arch Linux ### Option 1: Via Pacman and Npm $ sudo pacman -S nodejs ffmpeg git $ sudo npm install castnow -g ### Option 2: Without a detour from AUR $ yaourt -S castnow-git
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.
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.
### Connecting with the current playback session $ castnow ### Streaming a movie off the internet $ castnow http://media.xiph.org/mango/tears_of_steel_1080p.webm ### Loading Youtube clips off the web $ castnow http://www.youtube.com/watch?v=Tcx6YyXvvRI ### Streaming movies via Bittorrent $ castnow http://</< $ castnow magnet:< ### mp4 encoding the movie while playing back $ castnow --tomp4 ### Playing back a movie with subtitles $ castnow < --subtitles </// ### Playing several tracks or movies as a playlist $ castnow < < $ castnow < < $ castnow <///
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.
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  is also well worth looking into: It lets you implement Chromecast features in your own applications.
- Castnow: https://github.com/xat/castnow
- Node.js: http://nodejs.org
- Node.js PPA for Chris Lea: https://launchpad.net/~chris-lea/+archive/ubuntu/node.js
- NodeSource: https://chrislea.com/2014/07/09/joining-forces-nodesource
- Castv2: https://github.com/thibauts/node-castv2
Buy this article as PDF
The bug was introduced back in 2009 and has been lurking around all this time.
The new release deprecates the sshd_config UsePrivilegeSeparation option.
Lives on as a community project
Five new systems join Dell XPS 13 Developer Edition that come with Ubuntu pre-installed.
The Skype Linux client now has almost the same capabilities that it enjoys on other platforms.
At CeBIT 2017, OpenStack Day will offer a wide range of lectures and discussions.
A major setback for the Linux desktop.
Improved support for GPU in virtualization.
News site for the openSUSE community falls victim to a Wordpress exploit.
The source code is available online.