当前位置: 博客首页 >> 分享经验 >> 阅读正文

天猫商品详情页视频的下载的思路

作者: 郑晓 分类: 分享经验 发布于: 2017-09-06 14:06 浏览:7,728 评论(4)


同事问我如何下载保存一个天猫商品页中的视频,我想不就是直接f12查看请求,找到视频链接直接保存下来就行了吗?浏览器也有类似插件可以实现页面上的视频下载。

先以这个商品为例: <a href="https://detail.tmall.com/item.htm?id=15385666622">https://detail.tmall.com/item.htm?id=15385666622</a> 拿过来看了下发现并不简单,详情页上的视频,在用f12查看请求时,发现视频被分为了几段,每播放一段就会再下载下一段。所以直接下载完整视频是不行了。

仔细看页面的加载请求,发现在视频之前有个info.php?vid=xxx的请求,请求的返回格式是xml,而其中的数据正是描述这个视频的。所以想要下载完整视频得从这个文件下手了。 <a href="http://cloud.video.taobao.com/videoapi/info.php?vid=40565937">http://cloud.video.taobao.com/videoapi/info.php?vid=40565937</a> 返回的数据: </p> <result> <autoplay>false</autoplay> <duration>338</duration> <logo_type>taobao</logo_type> <pic_url> http://img.alicdn.com/bao/uploaded/i2/TB1Y_92KVXXXXaHXpXXSutbFXXX.jpg </pic_url> <play_type>0</play_type> <samekeyframes>true</samekeyframes> <uid>0</uid> <videos> <video> <bitrate>202</bitrate> <init_len>0</init_len> <length>8558342</length> <type>ld</type> <video_url> "http://vodcdn.video.taobao.com/oss/taobao-ugc/8615515395bd4948b00368453cbd5a1b/1466762066/video.flv" </video_url> </video> <video> <bitrate>406</bitrate> <init_len>0</init_len> <length>17178430</length> <type>sd</type> <video_url> "http://vodcdn.video.taobao.com/oss/taobao-ugc/03a17e32faf5420cb4f24a2d122a1ed5/1466762066/video.flv" </video_url> </video> </videos> <video_id>40565937</video_id> <is_auth>false</is_auth> <is_success>true</is_success> </result> <p>

其中videos节点中就是视频,其中按照清晰度不同,分为不同的video,每个video中的video_url就是视频地址了,但直接用这个地址是无法下载播放的,还需要一步。

再次观察页面请求中,视频加载后会有个1.flv请求,然后在视频播放过程中会有N个1.flv的请求。查看它的请求url: "<a 前面一段是我们从接口中得到的video_url, 而后面的部分,应该是视频的分段,我们这里把start改为0,end改为17178430(这个值是xml的video的length,也就是视频总大小),然后在浏览器上访问一下修改后的地址,便会直接下载到了真实完整的视频了。

对于视频信息接口请求时的vid=40565937中的vid,其实就是swf的文件名,它也在页面源码中。。。

以上只是视频为flv格式的, 我在找其它页面测试时发现还有m3u8的,以这个商品为例: <a href="https://detail.tmall.com/item.htm?id=555589089023">https://detail.tmall.com/item.htm?id=555589089023</a> 视频信息info.php接口返回如下: </p> <result> <adtemplate>0</adtemplate> <autoplay>false</autoplay> <duration>82</duration> <logo_type>taobao</logo_type> <mid>c6mJEWnLQy4CARvfBXa1h111</mid> <pic_url> http://img.alicdn.com/imgextra/i4/6000000001985/TB2gSE.cbMlyKJjSZFlXXbMoFXa_%21%210-0-tbvideo.jpg </pic_url> <play_type>2</play_type> <samekeyframes>false</samekeyframes> <showplayinglogo>true</showplayinglogo> <tracknick>xxxxxxxx</tracknick> <uid>1234567890</uid> <videos> <video> <bitrate>344</bitrate> <init_len>0</init_len> <length>554</length> <type>sd</type> <video_url> http://tbm.alicdn.com/F1wX39ZOFUNTIGmZVa7/TqhK5AMFlq6HNa9Cl2r%40%40ld.m3u8 </video_url> </video> <video> <bitrate>535</bitrate> <init_len>0</init_len> <length>554</length> <type>hd</type> <video_url> http://tbm.alicdn.com/F1wX39ZOFUNTIGmZVa7/TqhK5AMFlq6HNa9Cl2r%40%40sd.m3u8 </video_url> </video> <video> <bitrate>1016</bitrate> <init_len>0</init_len> <length>554</length> <type>ud</type> <video_url> http://tbm.alicdn.com/F1wX39ZOFUNTIGmZVa7/TqhK5AMFlq6HNa9Cl2r%40%40hd.m3u8 </video_url> </video> </videos> <video_id>50014606214</video_id> <is_auth>false</is_auth> <is_success>true</is_success> </result> <p> videos中也是根据清晰度不同分为三个不同的地址,拿到这个地址后,可以直接交给ffmpeg转换成mp4。 ffmpeg -i "<a href="http://tbm.alicdn.com/F1wX39ZOFUNTIGmZVa7/TqhK5AMFlq6HNa9Cl2r%40%40hd.m3u8">http://tbm.alicdn.com/F1wX39ZOFUNTIGmZVa7/TqhK5AMFlq6HNa9Cl2r%40%40hd.m3u8</a>" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/tmall-goods-video-download.html

天猫商品详情页视频的下载的思路:目前有4 条留言

用户评论头像 小青发表于 2017年11月09日 22:33[回复]

不错,博主有心了。

    用户评论头像 小白发表于 2017年11月09日 23:00[回复]

    不错,博主有心了。

      用户评论头像 anni发表于 2017年11月09日 23:03[回复]

      这个具体要怎么操作呢

        用户评论头像 爸爸的爸爸叫什么发表于 2018年01月08日 10:51[回复]

        牛逼

发表评论

change vcode