Python-iView

30 August 2009

Python-iView is an alternative frontend to ABC iView, which if you’ve been living under a rock, is an awesome ABC TV programme catchup service that lets you watch most ABC programs from the last month in your browser. Not only that, some ISPs have unmetered the service so it doesn’t use up your download quota.

However, the iView website has some major problems:

  • It depends on the use of the Adobe Flash plugin, which is proprietary software, which means that only changes or fixes for bugs in the plugin that Adobe approve of can be applied.
  • Flash only runs on Windows, Mac OS X, and x86 (32-bit or 64-bit) Linux. (e.g. our 1GHz Apple eMac running Linux has a PowerPC processor, which Adobe have chosen not to support, and thus cannot access iView, but would otherwise be powerful enough to play the videos.)
  • The videos must be watched in the browser inside Flash, which is a lot of overhead compared to a simple media player like VLC. iView is too slow on older or less powerful computers. (e.g. iView is so slow it is unusable on my ASUS Eee PC 901, even though it internally only uses 640×480 FLV video which should in theory be playable by any computer made in the last 10 years.)
  • Videos must be launched from within the web browser, and cannot be watched offline (e.g. downloading in advance for a long car trip). Though the ABC offers a download service for some of its programmes, it is not as comprehensive as the iView programme. Nor can iView programmes be downloaded for the purposes of fair dealing (e.g. quoting certain parts in journalism or interoperability — see points about Flash being proprietary above).
  • Not everyone has a fast Internet connection, and cannot watch the videos in real-time. You can get much smoother playback by downloading a video in advance and watching it once it is finished.

python-iview
To address this, I wrote the open source (GPLv3 — see license) application Python-iView, which does two main things:

  • Allows you to browse the iView programme outside of the browser (from a GTK+ interface).
  • Allows you to download episodes to your hard drive in their original FLV format.

You can then play the resulting FLV files in a media player such as VLC or Totem. Because certain videos are formatted by the ABC in an anamorphic widescreen format some videos may appear squashed. If this happens, make sure to select the 16:9 aspect ratio in your movie player to compensate.

Because of this application, I am now able to browse and view iView programmes on my Eee PC, Apple eMac (PowerPC), play programmes on our TV (through our Xbox) instead of having to watch them on a computer screen, or watch programmes during car trips.

Installation

Method one: PPA for Ubuntu users

As of May 2010, the best method for installing Python-iView for Ubuntu users is to add the Python-iView PPA repository which is hosted on Launchpad.

To add the repository, run:

sudo add-apt-repository ppa:jeremy-visser/python-iview

Then, to install the package, reload your apt repositories (sudo apt-get update) and install the python-iview and rtmpdump packages (sudo apt-get install python-iview rtmpdump).

Method two: install manually for other operating systems or distros

You will need to install the following dependencies (apart from rtmpdump, all of these should be included in your distro’s package manager):

Then, run the following to download python-iview:

bzr branch https+urllib://jeremy.visser.name/bzr/python-iview/ python-iview

You can then cd python-iview launch either ./iview-cli for a command-line interface, or ./iview-gtk for a graphical interface. See the included README file for further instructions and usage examples.

Volcano

3 May 2009

I’ve been working on a game which I’ve simply dubbed “Volcano”. It’s a simple logic game written in Python (using Pyglet) that has an erupting volcano on a grid, and you need to place pipes to make a path for the lava.

Volcano

It’s meant to be a remake of the classic Lavacap, which is an old DOS game that I loved playing when I was younger.

It’s coming along slowly but surely. The code is on Launchpad. At this stage, I’m not sure if anybody is interested in working on the game or even playing it, so I’m just throwing this out there to let people know. To try it out, first install Pyglet (package python-pyglet in Ubuntu/Debian), and then run:

$ bzr branch lp:~jeremy-visser/+junk/volcano
$ cd volcano
$ ./volcano.py

The game is not fully functional yet. You can lay out pipes, and it has some unfinished path tracing algorithms, but that’s pretty much it. To get an idea of what I’m trying to clone, run the original Lavacap in something like DOSBox.

The game is written in Pyglet, which is not the most resource-friendly way to write apps. However, it should be fairly easy to retrofit it onto a GTK+ GooCanvas or other application. If anybody is interested in helping out, then let me know (and bzr branch is your friend).

Battle for Wesnoth for OLPC

25 October 2008

OLPC XO-1 users around the world, I give you: Battle for Wesnoth for OLPC.

Battle for Wesnoth

(Screenshot credit: Samy Boutayeb)

Read more…