前言

微博视频目前有两种: (1)微博平台上传的视频 (2)微博旗下的美拍视频,本文说的是解析第一种视频,写于 19 年 6 月6 日,不保证时效性.

步骤

首先随便打开一个微博平台上的视频,比如

https://weibo.com/tv/v/Hxv6mkr3n?fid=1034:4379843773585775

先查看源码, 发现有一段 url 编码过的链接

可以用一万种办法直接解析里面的video-sources数据得到:

fluency=http://f.us.sinaimg.cn/001EKTL7lx07upCAXb4I010412005DFL0E010.mp4?label=mp4_ld&template=360x624.24.0&Expires=1559799410&ssig=8WwVfqT7U1&KID=unistore,video&480=http://f.us.sinaimg.cn/001EKTL7lx07upCAXb4I010412005DFL0E010.mp4?label=mp4_ld&template=360x624.24.0&Expires=1559799410&ssig=8WwVfqT7U1&KID=unistore,video&720=&qType=480

震惊!! 居然直接粗暴的在后端渲染出真实的播放地址….好了本文到此结束 :)

开个玩笑啦, 经过研究发现这个真实地址很快就会失效,过一会访问就会返回 403.

再仔细观察发现

Expires这个参数应该就是失效时间

ssig应该是根据某种算法加密生成的

所以想得到永久链接,需要自己生成合法的ssig才行.


在我全网搜索资料时没有发现有用的信息,倒是有一篇过时了的技术贴,不过最终却在微博自己的文档里找到了参数说明…

文档在这里: https://scs.sinacloud.com/doc/scs/guide/sign

根据文档得知, 此路不通…..生成 ssig参数需要对应的SecretAccessKey

而我们只知道微博平台用的AccessKey应该是video(根据文档中的KID参数解释推测得出)

看到这里是不是很失望…我甚至白写了一篇文章….

当然还有最后一种方法,问问认识的微博技术同学, 拿到对应的SecretAccessKey哈哈哈哈哈,要是被喷不要来骂我