Understanding Youtube HTML5 Query String

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.

+4
source share

Source: https://habr.com/ru/post/1530156/


All Articles