一、使用chrome的F12分析视频加载过程
1、例如加载电影《绑架者》,网址为:
http://v.youku.com/v_show/id_XMjcyNzAzNjEwMA==.html?spm=a2hmv.20009921.yk-slide-249197.5~5~5~5!2~A
2、F12大法分析加载过程,发现一条神奇的请求
3、点开看看,普通的get请求
4、看看响应,视频的所有信息都在里面
二、下面分析请求的构成
1、url = https://ups.youku.com/ups/get.json
2、headers
accept:*/*
accept-encoding:gzip, deflate, br
accept-language:zh-CN,zh;q=0.8
referer:http://v.youku.com/v_show/id_XMjcyNzAzNjEwMA==.html?spm=a2hmv.20009921.yk-slide-249197.5~5~5~5!2~A
user-agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
x-requested-with:ShockwaveFlash/27.0.0.130
3、请求参数
#网址中id之后部分
vid:XMjcyNzAzNjEwMA==
# 目前发现下面的都可以不变,一样可以请求到响应
ccode:0401 # ccode标识,目前分析是0401或者0502
client_ip:192.168.1.1 # 这个写死在代码里的,固定的
utid:4FhBEvEETkYCATFQttABsgY6 # 由js动态生成,目前看来固定不变
client_ts:1505401136 # 这个js代码是parseInt((new Date).getTime()/1e3)
ckey:098#E1hvk9v8vp6vUvCkvvvvvjiPP25pQjibPsMp0j3mPmPOAj3vPLFv6j1WRF5U1jiR3QhvCvvhvvvtvpvhvvvvvvGCvvpYjRIEkphvC99vvOC0BTyCvv9vvUvSQmXijfyCvm9vvvvvphvvvvvv9a1vpvQqvvm2phCvhRvvvUnvphvppvvv96CvpCCvUphvLOkqkXGm2SAW+i0e6W9LttbFDuNhmpJ56aJygOgBAJVHlgMhdS6L1dsE+GJrz1jH3b7UiGGRC/oWMUFtQG5EtOd/D/smhQ5YDSzLTIZjmphvLvAJSpvjX+0x9Wo4jLEc6acEKBvANB3rQjcGeEDsBW2I0nQ4e0Q4S47B9CkaU6bnDO2hV16AxYjxAfypW56OfaBlGb8rwZDlKbVxnqWCvpvVvvpvvhCviQhvCvvv9UU=#100
#ckey这个是最难的,经过分析是由98.js加密生成,水平有限,分析不出来
三、分析响应构成
其中比较主要的有:
1、show/title:标题
2、show/showcategory:分类
3、stream:视频流
(1)分为0~n为若干种类型视频,比如MP4格式,flv格式,长宽比不同等等,每种视频属性有height,width,size,milliseconds_audio和milliseconds_video音频视频长度,以及segs
(2)segs是将整段视频分为0~n若干片段,每段有size,totle_milliseconds_audio,totle_milliseconds_video,以及视频地址cdn_url