python下载西瓜视频2020最新思路

本文针对西瓜视频下载,意在学习分析过程,如有侵权请随时联系

1、获取video_id

简单的办法可以通过selenium加载网页获取video_id,但不是我们想要的,但app又没有video_id的获得,偶然的一次机会找到个方法就是在手机端的预览器搜索西瓜视频

其中的接口可以直接找到我们想要的video_id

2、获取视频mp4文件地址

在web端点击视频进入相应视频界面,分析抓包发现一个可疑的get请求,其中携带了我们获取到的video_id

url---> https://ib.365yg.com/video/urls/v/1/toutiao/mp4/v0201a770000bna2nfhpskdgpkvnl810?r=4670215640223838&s=3813868898&aid=3586&vfrom=xgplayer&_=1598757040584&callback=axiosJsonpCallback1

其中部分返回又有可疑的信息main_url看起来像一个base64加密后的字符串,带着疑问我们找个base64解码的网站,去解码一下,嗯!果然!解码出来mp4地址了

http://v6-default.ixigua.com/1518ddf8f0abd83689f0e5414afbe188/5f4b2859/video/tos/hxsy/tos-hxsy-ve-26/87c1a9c5d9d84f7b9b1a41865486d407/?a=3586&br=1041&bt=347&cr=0&cs=0&cv=1&dr=0&ds=1&er=&l=202008301110400100160411660B593F93&lr=&mime_type=video_mp4&qs=0&rc=Mztxbmpuc2k1cTMzOmQzM0ApNDNoNTRlOTxnNzxoNmk3ZGcuaXNtYXBla15fLS00Li9zc2FfYzVjNV9fMC5jYDQuLzU6Yw==&vl=&vr=

"video_1": {
	"definition": "360p",
	"vtype": "mp4",
	"vwidth": 640,
	"vheight": 360,
	"bitrate": 355694,
	"size": 18189324,
	"quality": "normal",
	"codec_type": "h264",
	"logo_type": "xigua",
	"encrypt": false,
	"file_hash": "37c7a19b8572d1d2f28e90690f4e020b",
	"file_id": "a842f137ec9f41d39b6bb81f28ef0b1d",
	"main_url": "aHR0cDovL3Y2LWRlZmF1bHQuaXhpZ3VhLmNvbS8xNTE4ZGRmOGYwYWJkODM2ODlmMGU1NDE0YWZiZTE4OC81ZjRiMjg1OS92aWRlby90b3MvaHhzeS90b3MtaHhzeS12ZS0yNi84N2MxYTljNWQ5ZDg0ZjdiOWIxYTQxODY1NDg2ZDQwNy8/YT0zNTg2JmJyPTEwNDEmYnQ9MzQ3JmNyPTAmY3M9MCZjdj0xJmRyPTAmZHM9MSZlcj0mbD0yMDIwMDgzMDExMTA0MDAxMDAxNjA0MTE2NjBCNTkzRjkzJmxyPSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9TXp0eGJtcHVjMmsxY1RNek9tUXpNMEFwTkROb05UUmxPVHhuTnp4b05tazNaR2N1YVhOdFlYQmxhMTVmTFMwMExpOXpjMkZmWXpWak5WOWZNQzVqWURRdUx6VTZZdyUzRCUzRCZ2bD0mdnI9",
	"backup_url_1": "aHR0cDovL3Y5LWRlZmF1bHQuaXhpZ3VhLmNvbS8wZGJiZWIzODI2NjY0NjFjZTc5NjU2ZjgwYmRlNjQxMS81ZjRiMjg1OS92aWRlby90b3MvaHhzeS90b3MtaHhzeS12ZS0yNi84N2MxYTljNWQ5ZDg0ZjdiOWIxYTQxODY1NDg2ZDQwNy8/YT0zNTg2JmJyPTEwNDEmYnQ9MzQ3JmNyPTAmY3M9MCZjdj0xJmRyPTAmZHM9MSZlcj0mbD0yMDIwMDgzMDExMTA0MDAxMDAxNjA0MTE2NjBCNTkzRjkzJmxyPSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9TXp0eGJtcHVjMmsxY1RNek9tUXpNMEFwTkROb05UUmxPVHhuTnp4b05tazNaR2N1YVhOdFlYQmxhMTVmTFMwMExpOXpjMkZmWXpWak5WOWZNQzVqWURRdUx6VTZZdyUzRCUzRCZ2bD0mdnI9",
	"check_info": "",
	"p2p_verify_url": "aHR0cDovL3Y2LWRlZmF1bHQuaXhpZ3VhLmNvbS9jN2U2OTk5NTZmYzk2ZGM0MmI5MjQ4YTAwYzFkMjRkMC81ZjRiMjg1OS92aWRlby90b3MvaHhzeS90b3MtaHhzeS12ZS0yNi9kMTI2M2U0ODcxYzc0ZjhhODhlYTQ3Mzc4Yjk1NjI1OC8=",
	"user_video_proxy": 1,
	"socket_buffer": 8002980,
	"preload_size": 327680,
	"preload_interval": 60,
	"preload_min_step": 5,
	"preload_max_step": 10,
	"spade_a": "",
	"kid": "",
	"barrage_mask_url": "",
	"barrage_mask_offset": ""
}

步骤大体就是这样:从接口获取video_id,然后去请求获取main_url,然后进行base64解码,就是我们想要的信息了。

但是在获取main_url这个链接中,有几个参数为校验参数,这些参数和原来web接口的加密方式一样。

1、r--->为随机产生的16位数字串

2、s--->通过zlib对url进行一个压缩得到的数据,代码为

str(zlib.crc32(url.encode()))

3、_---->为一个时间戳

我们获取到mp4文件的url后就可以进行视频的下载了,代码就不贴出来了,有兴趣的可以自己动手尝试一下。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

404NooFound

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值