抖音现在十分的火热,连玩纱巾的退休阿姨都会时不时发几个视频玩。
抖音很厚道,应用上直接提供了保存视频到本地的按钮,只是下载下来的视频多了点水印。
对于一个努力追求完美的人来说,这个水印很别扭,因此想要把它去掉。
这里就是为有更高追求的抖音人准备的一个去水印的方法。
方法秉承协议分析的一贯手段,从报文着手,介绍具体方法的实现,如果有想练手的朋友,按方法实现即可。
下面介绍如何从抖音获取无水印视频的分析过程,当然,大部分操作需要在PC上使用fiddler进行操作,否则多有不便。
第一步,获取带水印视频的下载链接短地址,从分享里面的复制链接获得:
最终得到的这样的字符串:
里面的”http://v.douyin.com/hD57d8/“就是需要获取的地址。
第二步,使用fiddler,构造报文访问这个地址:
是一个短连接,返回302跳转:
fiddler会自动执行,跳转https访问类似https://www.iesdouyin.com/share/video/xxxx的这个跳转地址,返回响应页面。
第三步,从这个返回的页面内找到关键字:
取出图中的itemId和dytk备用。
第四步,使用上一步获得的itemId和dytk两个值来构造地址https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=xxx&dytk=yyy,同时,构造http头,像这样子:
将会获得一个响应:
里面是json结构,从中提取图上的这个uri值,关键字是video,play_addr,uri。
第五步,使用这个提取的uri构造新的url https://api.amemv.com/aweme/v1/play/?video_id=xxxx uri&line=0&ratio=540p&media_type=4&vr_type=0&test_cdn=None&improve_bitrate=0,同时构造http头,像下面这个样子,修改Vpwp-Raw-Key内的值为上一步提取的uri值:
进行https访问,仍然是302跳转,跳到最终的http视频地址:
fiddler会自动执行,将把视频下载下来,最终的响应就是视频文件mp4内容。
第六步,这是最后一步,将响应视频mp4数据保存,像图中这样:
打开看看,是不是无水印的呢?
手动操作就这样了,自动和手动产生的报文只有下面几个:
整个流程使用Python很好实现,页面的解析也很简单,实现了就是一个简单的去水印工具了。
当然,对抖音的去水印还有其它各种各样的需求。技术其实类似,这里抛砖引玉,后续不排除会展开。
抖音去水印的方法就介绍到这里了,有任何需要可以留言。