Python-iView update

23 October 2009

Those of you running Python-iView should do an update to get the latest version, which contains a number of bug and compatibility fixes.

To update an existing Python-iView system, change to the directory where you installed it, and run:

$ bzr pull

Then, to support the new SWF verification ‘feature’, you will need to download and install rtmpdump, and install the resulting rtmpdump_x86 executable into somehere like /usr/local/bin.

(For those of you content with having their videos cut out every 8MB, feel free to continue using FLVStreamer — Python-iView will try both FLVStreamer and rtmpdump.)

If you don’t already have Python-iView, see the original post for instructions on how to get it.

SWF verification sucks

19 October 2009

Users of my Python-iView application may have noticed that when attempting to watch videos, they cut out after 8MB.

This is because the ABC have turned on “SWF verification”, which translates to “our incompetent head of IT who is a fan of Hello Kitty and also eats puppies decided we would enable this, similar to how passports and airport security actually keep out terrorists and criminals, and also explains why there is no crime in the world any more”.

Which also translates to “security by obscurity”, “papers please”, “fascism”, “коммунизм”, and “Miguel de Icaza”.

Because anybody watching videos from iView in anything other than the Flash-based web interface, e.g. on an underpowered Eee PC, an Xbox, or somebody offline, clearly shouldn’t be doing so. Doesn’t take a rocket scientist to figure that one out — even a manager could work that out.

This really sucks.

(And if you’re the type of manager that actually likes to fix problems and get things done — I know, bowls me over too — then disable SWF verification. It’s, like, a checkbox fix.)

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, but our ISP, Internode, has unmetered the service so it doesn’t use up our 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).