[MPlayer-dev-eng] HTTP streaming

Jeremy Drake mplayer at jdrake.com
Sun Dec 17 00:58:25 CET 2006


As you may have noticed reading this list, I have been working on a TiVo
file demuxer.  These files are downloaded from an embedded HTTP server on
the TiVo, so I figured I'd try to use the http streaming support of
MPlayer to stream one.  This failed.

Playing http://192.168.1.168/download/Stargate%20SG-1.TiVo?Container=%2FNowPlayi
ng&id=580449.
STREAM_HTTP(1), URL: http://192.168.1.168/download/Stargate%20SG-1.TiVo?Containe
r=%2FNowPlaying&id=580449
Connecting to server 192.168.1.168[192.168.1.168]: 80...
Authentication required for "TiVo DVR", nonce="B0C32AC6090C24CB", qop="auth"
Connecting to server 192.168.1.168[192.168.1.168]: 80...
Authentication failed. Please use the -user and -passwd options to provide your
username/password for a list of URLs, or form an URL like:
http://username:password@hostname/file


I did specify the -user and -passwd options, and also tried the
user:passwd at hostname url syntax, and got the same results.

For those who know HTTP, I have found that the TiVo embedded web server is
finicky and requires these features:
Digest authentication
Cookies (the 401 response has a Set-cookie header and expects the cookie
to come back in the next request)
Chunked encoding (in the response when downloading the file)

I have also noticed that WGet corrupts the downloaded files by putting
ascii-encoded numbers throughout the file.  These are the lengths of the
chunks in the chunked encoding.  Curl does not do this and works properly
with the following command line:
curl -k --digest -u tivo:{MAK} -c cookies.txt "{tivo2go url}"

Thank you,

-- 
Every program is a part of some other program, and rarely fits.



More information about the MPlayer-dev-eng mailing list