Python-iView

30 August 2009

For those that don’t read my Twitter/Identi.ca stream, I’ve been writing an application, which I have neglected to name anything, so let’s call it Python-iView.

It’s a Python-based 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, but our ISP, Internode, has unmetered the service so it doesn’t use up our download quota.

However, it 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 videos be downloaded for the purposes of fair dealing (e.g. 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) 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. The ABC formats their video into a 16:9 ratio in a 640×480 resolution. Because of that, the video may appear squashed — make sure to select the 16:9 aspect ratio in your movie player to compensate.

To get this magic application for yourself, install the following:

Then, run the following to download python-iview:

$ bzr branch http://jeremy.visser.name/bzr/python-iview/ python-iview

You can then 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.

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.

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…