微博视频播放页地址有如下几类:
https://weibo.com/p/230444897a6a26db6d0226093f2d5819cf1e90
https://weibo.com/tv/v/EgaAp1dcM
https://weibo.com/2142058927/Eg0OBB5A5
对于第1类播放页地址,在网页源码中找flashvars,得到:
flashvars=\\"file=http%3A%2F%2Fus.sinaimg.cn%2F001uS3Ssjx06SrkpkMWP0104010000200k01.m3u8%3FKID%3Dunistore%2Cvideo%26Expires%3D1478510437%26ssig%3Dp0HUXh1hy%252B&fid=1034:897a6a26db6d0226093f2d5819cf1e90&uid=3655689037&monitor=&vf=vshow\\"
从flashvars中提取出m3u8地址:
https://us.sinaimg.cn/001uS3Ssjx06SrkpkMWP0104010000200k01.m3u8?KID=unistore,video&Expires=1478510437&ssig=p0HUXh1hy%2B
请求m3u8地址,得到m3u8文件内容:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:90
#EXTINF:89.210000,
003AnpiMjx06Srkp3iQg01040100X0RL0k01.mp4?KID=unistore,video&Expires=1478510437&ssig=Bjn4hLbyDV
#EXT-X-ENDLIST
m3u8文件内容中有视频分段的路径,在路径前面加上域名前缀 https://us.sinaimg.cn/ 就得到视频的真实地址了。
对于第2类和第3类播放页地址,在网页源码中搜索字符串video_src,得到的结果为下面两种情形之一:
1.video_src=http%3A%2F%2Fus.sinaimg.cn%2F000XVbmgjx0769KU6MY80104010000200k01.m3u8%3FExpires%3D1478511257%26ssig%3DyfqjrL2U8N%26KID%3Dunistore%2Cvideo
2.video_src=http%3A%2F%2Fgslb.miaopai.com%2Fstream%2FN2iyg62w8TAd-cj~bSq0oA__.mp4%3Fyx%3D%26refer%3Dweibo_app
第1种情形中,video_src是一个m3u8地址,接下来的解析过程与前面所说的一样,无需赘言。
第2种情形中,video_src本身就是视频的真实地址。