I am doing some research in the new Youtube HTML 5 player and the DASH implementation. I'm starting out with Wireshark and utilities like DummyNet to see how the bitrate reacts to bandwidth changes. But before I can get into this, I need to better understand the packages that I see. I am mainly looking for help in decrypting GET requests. I filtered my Wireshark entries on "http.request.method == GET" and monitored TCP streams. I see that the parameters are: clen, dur, gcr, gir, id, ip, ipbits, itag, lmt, source, upn, expire. Some are simple, others are not. I am most confused about clen, upn, lmt and the parameter labeled mt, which is not listed as sparm. What interests me most is the search for the requested bitrate. But now I am confused by whether I look in the right place. clen is the only fieldwhich can be considered as a value in Mbps. But the value often does not match what youtube lists as possible bitrates for certain qualities. They also seem to be odd values ββfor bitrates. Here is an example request URL:
http://r15---sn-p5qlsney.googlevideo.com/videoplayback?lmt=1389519273541060&source=youtube&expire=1394008508&sver=3&dur=191.692&itag=243&upn=dPjd90tRg4o&id=o-ANPasmTb-Kbiei84oPQpCjzKQT9ypEOEBqSpq3YmfDmZ&fexp=906373%2C931942%2C934913%2C916612%2C937417%2C937416%2C913434%2C936910%2C936913%2C902907%2C934022%2C3300021%2C3300114%2C3300131%2C3300137%2C3300164%2C3310366%2C3310628%2C3310649&gir=yes&signature=898DF292EE99A453258333B40880CC72BCE453D1.DB976A3B1EB55CF43C36F6FFF2AF329FAD2E9EE4&sparams=clen%2Cdur%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Csource%2Cupn%2Cexpire&ipbits=0&ip=128.226.230.194&key=yt5&clen=4951576&cpn=BzQtGIscpjryZJ1D&alr=yes&mime=video%2Fwebm&ratebypass=yes&redirect_counter=1&cms_redirect=yes&ms=nxu&mt=1393986619&mv=m&range=1737754-2707644&keepalive=yes
I use Google Chrome as a browser and make sure that all the videos I have verified use an HTML5 player with active DASH.
source
share