"p2p_verify_url": "http://v3-default.ixigua.com/ee57deca950514556401a392c7d9e83c/5e01eced/video/m/220f0aa452d8a944c088ba8b41076b6d6f91163cd8fe00000cffbed16662/",
"user_video_proxy": 1,
"socket_buffer": 9774180,
"preload_size": 327680,
"preload_interval": 60,
"preload_min_step": 5,
"preload_max_step": 10,
"spade_a": ""
}
},
"dynamic_video": null
},
"message": "success",
"code": 0,
"total": 1
}
关键参数:
说明
data.poster_url
封面
data.video_list.video_1.main_url
视频地址
5、视频vid获取
在第一小节,解析链接来源中提到,各个不同来源的链接都可以换算为西瓜视频网页的链接,也就意味着,我们可以直接将所有不同来源的链接同等对待 。
所以,我们着手分析西瓜视频网页端的 vid 获取 。如下图:
文章插图
在网页源码中,我们发现,在一段js代码中,定义了vid的值 。综上,请求接口所需参数均已备齐了 。
6、源码
import requests
import json
import random
import zlib
def praseXigua(url):
pc_headers = {'user-agent': "Mozilla/****", 'cookie': 'xiguavideopcwebid=****'}
# 今日头条App分享来源处理
if "toutiaoimg.cn" in url:
itemId= url.split('/')[4]
url = 'https://www.ixigua.com/i' + itemId+ '/'
# 西瓜视频App分享来源处理
if "m.ixigua.com" in url:
itemId= url.split('/')[4]
url = 'https://www.ixigua.com/i' + itemId+ '/'
responsehtml = requests.get(url, headers=pc_headers, allow_redirects=True).content.decode('UTF-8')
# 获取vid
vid = responseHtml.split('"vid":"')[1].split('","')[0]
# 生成签名
parseUrl = "/video/urls/v/1/toutiao/mp4/" + vid + "?r=" + rand_num
crc_code = str(zlib.crc32(parseUrl.encode('utf8')))
# 请求接口
mResponse = requests.get("http://i.snssdk.com" + parseUrl + "&nobase64=true&s=" + crc_code, headers=pc_headers).content.decode('UTF-8')
mJson = json.loads(mResponse)
return mJson['data']['video_list']['video_1']['main_url']
总结:
综上,西瓜视频的解析分为3步
将不同来源链接转化为西瓜视频网页链接
模拟PC端请求该视频网页,获取视频vid
生成签名并发起请求,获得视频源地址
推荐阅读
- 头条视频如何转发给微信好友?正确的收藏和私信,老年人一学就会
- 2010年春晚小虎队再聚首背景视频 2010年春晚小虎队再聚首
- 华为|打响国产超高清视频及音频第一枪 华为智慧屏V Pro升级新一代画质技术
- 2010春晚完整版回放 2010年春晚直播完整版视频
- 王亚平航天员个人资料 中国航天员王亚平在太空舱视频
- 西瓜清火吗
- 苹果手机自带视频编辑功能太强了,剪辑软件看了直呼“好家伙”
- 让视频体积又小又清晰的关键参数,你知道吗?
- 网站统计使用帮助
- 如何使用WebRTC建立一个视频会议App