Subscribe to TV Shows Using BitTorrent on OSX
Written by enigmax on April 23, 2008Last year TorrentFreak covered the TV-Shows application which allowed the user to subscribe to TV shows using BitTorrent. Some people are reporting that the app isn’t working for them so for those that don’t mind working at a solution, here is a tutorial to achieve the same, using freely available tools.
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.
1. Preparation
Open 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
A typical tvshows.sh might look like this:
#!/bin/bash
echo -n “tvshows.sh – “; date # log current date & time (cron.log)
/Users/YOU/bin/pytvshows-0.2/pytvshows –output_dir=/Users/YOU/Downloads/
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:
$ ./bin/tvshows.sh
It should download unseen episodes of the shows configured in ./pytvshows.cfg.
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 ~/bin/cron.log.
Have fun!
Lipflip’s blog can be found here
Previously: Most Popular DVDrips on BitTorrent (wk16)
Next: Pirate Bay Investigator to Cash in Temporarily at Warner Bros.





17 Responses
TVshows is still working…i use it every day and daily show and law and order came down through it yesterday
Not for me and a lot of my colleagues.
After the Leopard update it didn’t download a single new episode. Even removing and reinstalling didn’t work.
Additionally it has thrown away my list of shows I had subscribed.
Are you using Tiger?
TVshows still working great for me in Leopard.
It’s really about time, that TVShows 1.0 is released or Transmission includes the same feature µTorrent has.
Even though I have more than basic scripting skills, I’d still prefer a simple interface, like TVShows has.
It’s just one reason, why I switched to Mac in the first place :D
Scripting is too much Linux for me. I just want to stay away from it :D
Yeah. TVShows was awesome. And I would immediatly switch back to it if a new version is released.
But in the meantime I need another tool for this and even though you have to fiddle around with the command line, pytvshows works great.
I don’t know about TED, but pyTVshows works great in linux too following roughly the same directions (can’t remember exactly how I set it up as its been a few months).
What I’m having trouble with is something to actually download the torrents. I’m not interested in running a GUI app periodically to download things. I want some CLI client to run from crontab. I’d also like something to seed the torrent. So far ctorrent is the only thing have found, but it’s no longer in development and crashes as often as not.
Try Newsfire+Transmission as the non-scripting solution for those afraid of the terminal. Subscribe to TV shows by getting the RSS feeds from TVrss.net, add the feeds in Newsfire and pick the folder the torrent files download to and have Transmission auto-download from any torrents dropped in that folder. Watch in Front Row without ever using a cable box, an antennae or visiting a torrent site.
If you know how to use subversion, I strongly suggest you try that version. It’s far more reliable and mature. I was about to make a 0.3 release in fact! You might want to update this tutorial if I do, the configuration system has changed somewhat.
Glad to see my script is useful anyway!
I just use Azureus and the RSS plugin with tvrss.net…
Or µTorrent under Wine. Use RSS feed for your favorite TV shows on a public tracker. All these development efforts are great. Unfortunately, until Bittorrent becomes a widely accepted protocol with money to drive development, its going to continue to be half-assed written apps. Its still got a lot of stigma attached to it, its still very nerdy, and you only have a handful of well written Bittorrent clients.
Miro works great for me, 1.2 has added some more control over torrent downloads too.
Fro mwhat I can see from here, osx is just linux that you pay to have in a shiny skin.
http://www.ubuntu.com/
@12; Never heard anyone talking so much trash. First of all, Darwin, the gui of MacOSX, is not a shitty X.org skin, like KDE. Second, MacOSX is NOT based on Linux, but on FreeBSD. *BSD rocks! Third, MacOSX is not binary compatible with Linux!
This is dumb. Use tvrss and Miro, it works just fine, and you may even start downloading the episode before it airs in your area. Who want’s to mess around with scripts to perform a task like this?
Cramdom you’re an idiot.
yeah thts correct! saw it here!
http://pluking.blogspot.com
hi,
will this script grab ‘PROPER’ releases of episodes that it has already seen?
like, when a broken version of a new episode is first uploaded, tvshows (old version) will download it, then when the PROPER is released, tvshows ignores it because it’s already seen that episode number. will this script grab the PROPER, or can it be tweaked to do so?
cheers
2 references to this post
Responses are closed
All remaining responses will continue to be archived. Use the TorrentFreak forums if you want to discuss something.