Progressive download with Urllib2.
aioe.org at technicalbloke.com
Sat Dec 6 01:52:20 CET 2008
I am trying to download some video with python but have run aground on
the rocky shores of pseudostreaming. Fingers crossed someone else here
has some experience with this! Here's what I've done so far...
The initial link is foo.asx so I download that with...
handle = urllib2.urlopen( 'http://www.example.com/foo.asx' )
mime_type = url_handle.info().getheader("Content-Type","")
data = urllib2.read()
It comes back with mime type of 'video/x-ms-asf' and the content...
I then used the same code again to grab the URL (ditching the 'ASF '
bit) and this time it comes back with a mime type of 'video/x-ms-wvx'
and two URLs...
The latter is no use as it's on a private LAN and the second is the same
URL as last time, just with a different mime type and naturally it
returns the same thing if I use Urllib2 open and read to fetch it with
or without the '?MSWMExt=.asf' part. So...
I fired up wireshark and spotted these lines coming back in the headers:
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch,
I suspected for a second that meant I have to connect with a MS media
player or something but the same URL works fine when I paste it into
Firefox and the video starts pseudostreaming away so...
How can I get their server to give me the video data? Do I need to ask
for the file with some other protocol? RTSP? or change my user_agent
string and pretend to be Windows Media Player?? Do I need another
module as opposed to urllib2? and if so which one? I've had a search but
drawn a blank.
I guess I'll plug on in wireshark and see what some other programs do
but I'd appreciate it if anyone can put me out of my misery!
More information about the Python-list