日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文的視頻解析,目的是根據用戶在某平臺對某一個視頻的分享信息,(如一個視頻鏈接),拿到該視頻的源地址。不好的地方望多多提議,謝謝!

1、解析鏈接來源

西瓜視頻解析的鏈接來源,可以來自今日頭條App,也可以來自于西瓜視頻網頁或者西瓜視頻App。

來源

舉例

鏈接域名

X日頭條App

https://m.toutiaoimg.com/a6773817552297525771/?app=news_article&is_hit_share_recommend=0

m.toutiaoimg.com

西瓜視頻App

https://m.ixigua.com/group/6713036790858531331/?app=video_article×tamp=1577176945&utm_source=copy_link&utm_medium=Android&utm_campaign=client_share

m.ixigua.com

西瓜視頻網頁

https://www.ixigua.com/i6697675511759372808/

www.ixigua.com

當拿到一個待解析鏈接時,可以根據上面的表格明確鏈接的來源。但是,無論是哪個來源,他們均有一個共同參數,那就是西瓜視頻的 itemId。同時,不同來源的鏈接均可以換算為西瓜視頻網頁鏈接。如下:

2、今日頭條APP分享鏈接

https://m.toutiaoimg.com/a6773817552297525771/?app=news_article&is_hit_share_recommend=0

其中

itemId = '6773817552297525771'itemId = '6773817552297525771'

3、西瓜視頻APP分享鏈接

https://m.ixigua.com/group/6713036790858531331/?app=video_article×tamp=1577176945&utm_source=copy_link&utm_medium=android&utm_campaign=client_share

其中

itemId = '6713036790858531331'

最終,可以將分享自不同平臺的視頻統一為一個西瓜視頻網頁鏈接,如下:

webUrl = 'https://www.ixigua.com/i' + itemId

4、解析接口及簽名算法

接口地址:

GET http://i.snssdk.com/video/urls/v/1/toutiao/mp4/{vid}

接口參數列表

參數

舉例

說明

vid

v02004020000bmg1iqcthbib5vi1gcjg

和itemId以一對應

r

100000000

100000000到999999999的隨機數

nobase64

true

固定位true

s

3103163236

簽名:隨機數r與vid作為簽名算法的輸入

請求 Header 必要參數

參數

示例

說明

user-agent

Mozilla/5.0 (X11; linux x86_64) AppleWebKit/**********

無固定要求,一般使用PC端UA訪問即可

cookie

xiguavideopcwebid=**********

真實cookie

簽名算法(偽代碼):

# 輸入1:vid(視頻vid)

# 輸入2:r(隨機數)

# 輸出:請求簽名s

def sign(vid, r):

parseUrl = "/video/urls/v/1/toutiao/mp4/" + vid + "?r=" + r

s = crc32(parseUrl )

return s

看明白了嗎?簽名算法已知,獲取到視頻vid并給一個隨機數,就可以獲得該次請求的簽名了。西瓜視頻的服務端根據請求參數和簽名驗證請求是否合法。

請求響應示例

{

"data": {

"status": 10,

"user_id": "toutiao",

"video_id": "v02004020000bmg1iqcthbib5vi1gcjg",

"validate": "",

"enable_ssl": true,

"poster_url": "http://sf1-ttcdn-tos.pstatp.com/obj/tos-cn-p-0000/1881ffd026234850ad4bf69aa5c38835",

"video_duration": 414.13,

"media_type": "video",

"auto_definition": "360p",

"video_list": {

"video_1": {

"definition": "480p",

"vtype": "mp4",

"vwidth": 854,

"vheight": 480,

"bitrate": 434409,

"size": 22487645,

"quality": "normal",

"codec_type": "h264",

"logo_type": "xigua_share",

"encrypt": false,

"file_hash": "bd5f78b91285cfe60b98b3be51c487f1",

"file_id": "9f09a116dce34966800788c09370edb7",

"main_url": "http://v3-default.ixigua.com/e104c4ca4fb27fa3040c317de43b1380/5e01eced/video/m/22063ff749ecede4ac9bd0b67442bce2b441163cbb4d00001cdf11df7004/?a=2012u0026br=848u0026bt=424u0026cr=0u0026cs=0u0026dr=0u0026ds=2u0026er=u0026l=201912241741190100140481451111CA14u0026lr=u0026qs=0u0026rc=amY0eWVld3Q0cDMzNTczM0ApZWg6PGY7Mzs5N2hnNGQzPGdnZGYyZmVgZmRfLS0tLS9zczRhLTAtNTQtMzYwYDMuNmM6Yw%3D%3D",

"backup_url_1": "http://v6-default.ixigua.com/39f7e9ff0fa218105b70d40a02a581ea/5e01eced/video/m/22063ff749ecede4ac9bd0b67442bce2b441163cbb4d00001cdf11df7004/",

"check_info": "",

"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

生成簽名并發起請求,獲得視頻源地址

分享到:
標簽:西瓜 視頻
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定