Entertainment automation for home (RaspberryPi) and VPS in a docker image
How does it look like?
Search for torrents
Select from search results
Push notification of download complete
How to use?
Get a VPS or a RaspberryPi and install any Linux OS (preferably, with a good docker support; choose one of Ubuntu & ArchLinux if in doubt).
Install docker on it.
Create an account on Followshows and follow your favourite shows. Get the link to the RSS feed (right side above the calendar on home page), it should be of the form:
Optionally, use your email address for download complete push notifications. If you're an iPhone user, get the Boxcar2 app for push notifications. Once you sign up, you will get an email address (of the form
firstname.lastname@example.org), use it here and you'll get notifications straight on your iPhone. (I have not found any free Android app for push notifications yet). Omit the
-e EMAILemail@example.com in following command to disable notifications.
If you want to use the media streaming server (eg, on a RaspberryPi on home network), run the following:
docker run -d --name tv -e EMAILfirstname.lastname@example.org -e RSS_FEED=http://followshows.com/feed/foo -e "TV_OPTS=-s 720p" -v $PWD/data:/data --net host viranch/tv
- If you don't want to use the media streaming server, (eg, when on a VPS), just change the
--net hostpart in above command to
docker run -d --name tv -e EMAILemail@example.com -e RSS_FEED=http://followshows.com/feed/foo -e "TV_OPTS=-s 720p" -v $PWD/data:/data -p 80:80 viranch/tv
http://your-ip/. You can change the port with the
You can also optionally set a basic authentication username & password using the
-e AUTH_PASSenvironment variables:
docker run [...] -e AUTH_USER=bob -e AUTH_PASS=myprecious [...] viranch/tv
What does it contain?
- Transmission server for downloading media from torrents.
- Dashboard web page (
http://your-ip/) that shows:
- Torrent search bar, with direct "Download" button in search results.
- The Transmission web interface
- Web view of the downloads directory (hosted by Apache).
- A daily cron job that looks for new episodes from the RSS link provided in run command.
- MiniDLNA media streaming server, which streams the download directory; so anything downloaded with torrents is readily available for streaming to a TV or any UPnP/DLNA client (eg, VLC Media Player).
This environment variable is used to pass extra options to the cronjob script. The one in the sample run above adds the suffix "720p" for all torrent search queries.
Check out the script to see what options you can pass.
Multiple RSS feeds
You can pass multiple comma-separated RSS feed links to
RSS_FEED variable in the run command.
You can also pass multiple sets of
TV_OPTS (comma-separated, eg:
TV_OPTS=-s 720p,-s eztv can also be passed.
Note that the number of RSS feed links and set of
TV_OPTS should be equal. The first RSS link will be used with first options set in
TV_OPTS, second link for second options set, and so on.
Media streaming server (MiniDLNA)
The configuration for minidlna sits at
/etc/minidlna.conf inside the container (access a running container with
docker exec -it tv bash, where
tv is the container name). You can copy it on the host, customize it and mount it with a new container using
-v /path/to/minidlna.conf:/etc/minidlna.conf in the above run command.
Running your own instance on cloud
Its very easy to run this image in a small container on cloud with HYPER_:
Create an account on Hyper from here, includes free $10 credit.
Setup credentials here, and save the generated keys.
Setup hyper on your Mac, enter your keys on prompt:
brew install hyper hyper config tcp://us-west-1.hyper.sh:443
Now proceed to run the container:
hyper pull viranch/tv hyper run --size s2 -d --name tv -p 80:80 viranch/tv IP=`hyper fip allocate 1` # one-time hyper fip associate $IP tv
Open http://$IP/ in your browser!
Remove the container (optional):
hyper rm `hyper stop tv` hyper fip release $IP
- mpd for playing & controlling your music remotely.