Last year when we wrote about the great TVShows application, it was well received by the TorrentFreak readers. The software did some really good things and the developer is promising a major update soon and we’ll bring that news when we have it. For those who missed it first time round, take a look at the original article for a full explanation. In the meantime, some people are reporting that the application has recently stopped working for them, leaving some OSX users with fewer options for subscribing to tv-shows using BitTorrent.
Some people are using TED, which is a Java app running continuously which may cause resource issues for the under-powered computer. Others might choose to use directly the RSS support built into torrent clients, explained in this previous article, or go for software such as Miro.
But for those of you out there who like to get a little more hands-on and aren’t afraid of a basic command line, read on.
TorrentFreak reader Lipflip has come up with an alternative method for OSX and probably Linux users too. He told us that everything TVShows did can be achieved by using some freely available tools like
cron and a script
pyTVShows that is based on the original TVShows application.
pyTVShows does the actual work by checking tvrss.net for torrents and downloading them if new ones are available. Lipflip has published a simple tutorial on how to setup the different components so that everything is working as expected. Although you don’t have to be an uber-geek to follow the tutorial, Lipflip notes that some basic command line skills are required which should help users to get their shows until the new TVShows is released.
The original TVShows application consists of two parts:
1. A front-end for fetching a list of shows and for subscribing/unsubscribing.
2. A python script in the back-end, that regularly asks tvrss.net if new episodes for the subscribed shows are available.
Luckily TVShows is an open source application, so after the development of TVShows stood still for several months, the back-end forked away as the separate pyTVShows project. We’ll use this to build a system that fetches your favorite television shows automatically.
The installation consists of a few easy steps. Python already ships with Leopard, so you don’t have to hassle around with fink or other ways to bring Python onto your computer.
Terminal.App and create a
bin/ directory under your home. You can use this directory to store small scripts or little unix-like applications.
$ mkdir /Users/YOU/bin
Download pyTVShows, unzip it, and put it as pytvshows-0.2 in your bin/ directory.
Download feedparser, unzip it, and install it.
$ cd /Users/YOU/Downloads/feedparser-4/
$ python setup.py install
2. Create a preliminary configuration file
pytvshows settings are stored in
/.pytvshows.cfg. Create it and add one or two shows for testing.
$ nano ~/.pytvshows.cfg
The format of the configuration file is pretty simple. The name of the show is enclosed by squared brackets, followed by the last season/episode you have seen.
So the next episode downloaded for Favorite Show from the example below will be Season 1, Episode 2. Try
episode = 0 for catching the first episode of a new season.
[Favorite Show] episode = 1
season = 1 [Another Show] episode =1
season = 4
See pytvshows’ documentation for further details.
3. Create a little wrapper script
Create a little wrapper script that calls the actual
pytvshows, but hides any command line arguments you might want to use. Don’t forget to make it executable.
$ nano ~/bin/tvshows.sh
$ chmod a+x ~/bin/tvshows.sh
tvshows.sh might look like this:
echo -n “tvshows.sh – “; date # log current date & time (cron.log)
This will call
pytvshows and tell it to download new
.torrents into Leopard’s Downloads folder. This folder is usually represented as a stack in your dock. You might consider configuring your favorite BitTorrent client to watch this folder for new .torrent files.
Check it for typos by executing the script:
It should download unseen episodes of the shows configured in
If it doesn’t try running pytvshows with the parameter
--verbose. The configuration file will be rewritten each time a
.torrent was downloaded. So maybe it doesn’t download new episodes because it thinks it already did.
4. Run tvshows.sh periodically
Unix-like systems usually come with a time-based scheduling service called
cron. It is driven by rather cryptic looking configuration files called
crontabs. In this case we’ll tell
cron to run our newly created
tvshows.sh twice an hour.
Edit your crontab:
$ crontab -e
If you’re thrown into
vi you may try
export EDITOR=nano beforehand.
Your crontab should look like this:
# run twice an hour
12,42 * * * * /Users/YOU/bin/tvshows.sh >> $HOME/bin/cron.log 2>&1
This tells cron to call tvshows.sh on 12 resp. 42 minutes past the hour. All output (
STDERR and STDOUT) should be send to /Users/YOU/bin/cron.log.
Take a look at
man crontab for further information.
It’s strongly suggested to randomize the numbers above. Otherwise too many
pytvshows might be querying tvrss.net simultaneously.
5. You’re probably done
Check your configuration by looking at
Lipflip’s blog can be found here