Copyright © 2000 J. Peter Hoddie. All rights reserved
Version 0.1; February 28, 2000
Latest version available at www.hoddie.net/movietoxml.html
MovieToXML is a Macintosh application which takes a QuickTime reference movie and generates an XML file. The XML file is of the format used by the XMLtoRefMovie application. MovieToXML is a work in progress. It has a terrible user interface. It doesn't properly decompile the "default-movie" case. But it does work, and can be extremely useful in decompiling existing reference movies to see how they work.
Note: MovieToXML is only intended to work on QuickTime reference movies. If used on a normal QuickTime movie, it will create a very boring output file.
To run the application, double click it. When run, a dialog appears which gives the option to load the movie from a file or from a URL. Selecting file brings up a standard file selection dialog. Selecting URL brings up a dialog to enter a URL into. The URL can begin with file:, http: or ftp:. It must be an absolute URL. The application then opens the movie and converts it to XML. If the movie was opened from a file, the output file will be created in the same folder as the input movie with ".qtrm" appended to the name. If the movie was opened from a URL, the output file will be created in the same folder as the MovieToXML application with the name of the URL with ".qtrm" appended. In some cases, the name of the URL cannot be determined in which case the output file name will be "unknown.dump.qtrm".
Click here to download the software.
Many of QuickTime TV channels that come preloaded in the QuickTime Player application make use of QuickTime reference movies. For example, when the BBC World channel is invoked, the QuickTime Player opens the URL http://www.apple.com/quicktime/favorites/bbc_world1/bbc_world1.mov. This URL is a reference movie, which MovieToXML converts to the following XML.
<qtrefmovie>
<refmovie src="http://stream.qtv.apple.com/channels/bbc/refs/bbc_ref.mov" data-rate="28.8 modem"/>
<refmovie src="http://stream.qtv.apple.com/channels/bbc/refs/bbc_ref.mov" data-rate="56k modem"/>
<refmovie src="http://stream.qtv.apple.com/channels/bbc/refs/bbc_ref.mov" data-rate="dual isdn"/>
</qtrefmovie>
This reference movie is a little strange. It contains entries for three separate data rates, but they all point to the same movie, another reference movie. Running MovieToXML on that URL, http://stream.qtv.apple.com/channels/bbc/refs/bbc_ref.mov, gives the following result.
<qtrefmovie>
<refmovie src="rtsp://a1924.q.kamai.net/7/1924/132/388cebe3/stream.qtv.apple.com/channels/bbc/sdp/bbc100" data-rate="dual isdn"/>
<refmovie src="rtsp://a1316.q.kamai.net/7/1316/132/388cebe3/stream.qtv.apple.com/channels/bbc/sdp/bbc28" data-rate="28.8 modem"/>
<refmovie src="rtsp://a1752.q.kamai.net/7/1752/132/388cebe3/stream.qtv.apple.com/channels/bbc/sdp/bbc56" data-rate="56k modem"/>
</qtrefmovie>
This movie is more reasonable, containing three different RTSP urls, one for each of three data rates: 28.8 modem, 56k modem, and dual ISDN.
The NPR channel is also interesting. The QuickTime TV NPR channel points to the URL http://www.apple.com/quicktime/favorites/npr1/npr1.mov. The URL is a reference movie, which MovieToXML converts to the following XML.
<qtrefmovie>
<refmovie src="http://stream.qtv.apple.com/channels/npr/refs/nprlive.mov" data-rate="0"/>
</qtrefmovie>
This reference movie has only a single entry with a data rate of zero. Instead of offering choices, this reference movie is simply providing a level of indirection to the actual movie. In other words, this reference movie is an alias (Macintosh terminology) or short-cut (Windows terminology) to the actual movie. So looking at the URL http://stream.qtv.apple.com/channels/npr/refs/nprlive.mov, MovieToXML shows the following.
<qtrefmovie>
<refmovie src="rtsp://a112.q.kamai.net/7/112/131/3899d07f/stream.qtv.apple.com/channels/npr/sdp/npr" data-rate="0"/>
</qtrefmovie>
The NPR feed is only available at a single data rate. This is specified by setting the data-rate to zero.
Tip: To find out the URL's of the channels in the QuickTime TV drawer either use MPW's dumpfile tool (I know it's trendy to hate MPW, but it is incredibly useful) or Resourcerer on your QuickTime Preferences file. Alternatively, use OTSessionWatcher to watch the URL requests when clicking on the QuickTime TV icons.