Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This application started as a proof of concept that it can be easy and comfortable to stream video from an HTTP server in the local network to ChromeCast devices. The media is streamed directly from the HTTP server to the Chromecast, no transcoding is done. Currently the app is implemented in HTML/CSS/JavaScript using Chrome's JavaScript API to access the Chromecast. Since the media list is a static HTML file, streaming can be done from nearly any web server that supports setting mime types and allows seekable access to files.

This project borrows heavily from, thus the Apache license is kept. The app uses Chromecast's (pretty basic) standard player (no custom backgrounds, no custom UI elements, just timeline, description and an image) since casting to this player does not require an API key. Requiring an API key would be very problematic since it is bound to a certain website that is reachable from the internet - which is exactly what we do not want!

How it looks

Upon start up you just get a list of folders containing media files. Click through the white directories to reach yellow files:

screen shot

When clicking on a file it will play immediately in a player window that overlays the page. On smaller displays parts of the list might now be hidden. Just click "Toggle player" to make the player invisible or click the full screen icon to play - well - full screen:

screen shot

Click on the Chromecast icon to send the video to your Chromecast. In this case the player window gets hidden immediately. Click on a different media file and it will play immediately on the Chromecast:

screen shot

Prepare your web server

Put some files on your web server, to test if the mime types are set correctly:

  1. This Big Buck Bunny is known to play in Chrome, if opened from the local server it should play fine within Chrome
  2. Prepare an MKV with a h.264 video track and MP3 audio track(s), if Chrome tries to download the file, cheat a bit by declaring a mime type that Chrome accepts, like AddType video/mp4 .mkv in Apaches mime.conf - after a restart of your web server Chrome should play the video within the browser window.

Create the HTML file

Now add a directory structure for your videos below the RollerCaster directory. I usually use bind mounts to do so, depending on your configuration softlinks might also work.

Then run the supplied ruby script to generate the static HTML file. the script takes two parameters, local web root and http web root and writes to standard output. Assuming your RollerCaster installation lives in /var/www/html/RollerCaster and this directory maps to you run:

ruby traverse_dir.rb /var/www/html/RollerCaster \
  > /var/www/html/RollerCaster/video.html

Of course you have to run this script every time you make changes to your video directories!

Open the player

Now navigate to, navigate through your media directories, select a video and play it. Have fun!

You can send the video to Chromecast by clicking on the cast icon. The "Toggle player" in the upper right corner toggles the players visibility, which is useful on screens smaller than 1366px wide.

What's next?

In it's current state, this app "just works": You can select a video, play fullscreen, toggle between local and Chromecast playback. But the interface is still a bit clunky. Here is what to expect to happen:

  • Clean up dead JavaScript code
  • Fix bug: when started without a Chromecast present, the play/pause button might stay inactive
  • Create a nicer user interface - you are welcome to contribute mockups!
  • Adjust this user interface to portrait mode (player on top, list below) for Windows 8 tablets
  • Add selection of subtitles
  • Add selection of audio tracks
  • Show an image if an jpeg exists with the same name as the movie
  • Show text description if it exists
  • Eventually add an Android app that parses the HTML and uses the Android API to send the video to the ChromeCast


You might contact me by mail if you have questions, I guess I'll create some FAQ soon. If you run into issues or bugs, please create a GitHub account and use the link "Issues" on the right pane to report.


Sample application to cast MKV/MP4 from a web server in the LAN to Chromecast by the way of a Chrome browser acting as a control point.







No releases published


No packages published