抖音APP视频下载地址无水印解析
测试地址:https://www.iesdouyin.com/share/video/6537262452361399555
打开开发者工具点击播放就能拦截到视频链接
通过开发者工具拦截得到这个链接:https://aweme.snssdk.com/aweme/v1/playwm/?video_id=816174ff00d1469dae9c464bbb9064be&line=0
并且注意观察一下可以看得到响应头的Location字段给我们返回了视频直链:
http://v6-dy.ixigua.com/video/m/220a11db0fe53e841a8b5ed19bb47ca53791155aa5600001e6de9035461/?Expires=1524442078&AWSAccessKeyId=qh0h9TdcEMoS2oPj7aKX&Signature=dZSzdHZCOVCwGoJwU%2BEisygFLAU%3D
把视频直链复制到浏览器可以播放,可惜视频是有水印的。
我们先不管它,先去分析https://aweme.snssdk.com/aweme/v1/playwm/?video_id=816174ff00d1469dae9c464bbb9064be&line=0是怎么来的,可以看得到这个视频链接只有两个参数:
video_id=816174ff00d1469dae9c464bbb9064be
line=0
字面上的意思就很明显video_id,视频ID(经验上来说这个参数是这个视频的唯一标识,每一个视频都会对应一个video_id,也就是说我们只要找到这个video_id参数就能拼凑出视频解析链接。),一般来说我们可以直接在视频页网页源码搜索一下video_id或者816174ff00d1469dae9c464bbb9064be是不是在网页源码里面。
通过搜索视频页网页源码可以看得到视频页网页源码里面有一串Josn数据,我们需要的video_id参数就在这一串Josn里面,我们格式化一下:
结果很明显,url_list数组里面的第一个数组跟我们开发者工具拦截到的视频链接是一样的,而两个数组的区别就是line参数不一样,但是不管line参数是0还是1都是可以取到视频直链的,所以我们不用去管他(或者我们可以猜测一下他可能代表的是不同的线路或者是不同的分辨率)。
我们捋一下思路:
首先我们访问视频页面:https://www.iesdouyin.com/share/video/6537262452361399555
然后从视频页网页源码中取出Josn数据,再解析出Josn里面的url_list数组,从数组取得视频链接:
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=816174ff00d1469dae9c464bbb9064be&line=0
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=816174ff00d1469dae9c464bbb9064be&line=1
再访问数组里面的任意一个链接访问后从响应头的Location字段取得视频直链:
http://v6-dy.ixigua.com/video/m/220a11db0fe53e841a8b5ed19bb47ca53791155aa5600001e6de9035461/?Expires=1524442078&AWSAccessKeyId=qh0h9TdcEMoS2oPj7aKX&Signature=dZSzdHZCOVCwGoJwU+EisygFLAU=
当然上面这一个过程我们取得的始终是有水印的视频,我们只需要替换一下从数组取得的视频链接里面的一个参数就可以取到没有水印的抖音视频直链,比如说:
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=816174ff00d1469dae9c464bbb9064be&line=0
我们把playwm替换为play:
https://aweme.snssdk.com/aweme/v1/play/?video_id=816174ff00d1469dae9c464bbb9064be&line=0
这样子我们访问替换过后的这个链接后从响应头的Location字段取得的视频直链就不会有水印了。
2018年11月18日更新
把playwm替换为play后如下:
https://aweme.snssdk.com/aweme/v1/play/?video_id=816174ff00d1469dae9c464bbb9064be&line=0
再在URL后面添加如下内容:
&device_platform=iphone
替换后链接如下:
https://aweme.snssdk.com/aweme/v1/play/?video_id=816174ff00d1469dae9c464bbb9064be&line=0&device_platform=iphone
另外访问时如果显示视频不存在,测试带上以下header。
Host: aweme.snssdk.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1