Which As a Side-Effect Means Learning Python

The great Amazon S3 experiment continues, hacking someone elses code to solve my own problem, which as a side-effect means learning Python (which, it turns out, was exactly the same way I learned PHP). My mundane videos didn't load correctly in Safari. Thanks to Djun Kim for pointing that out, though it took Firefox's Live HTTP Headers extension to figure which Content-Type header Amazon S3 was sending out, which was text/plain. S3 evidently can't figure out on its own side that I was uploading MP4 files, so I had to hack Adrian Hovolaty's script to hard-code video/mp4 in and re-upload all the video.

Astute Drupal reverse-engineering types will note that my mundane SkyTrain video appears under my Video "book" page as well as under the SkyTrain Explorer "book" page (that last part not being technically true, since I use custom PHP to expand an outline on a page). How I put one child underneath multiple parent pages will have to wait until I write it up, but Moshe Weitzman provided a clue in an old Drupal.org issue.