91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

發布時間:2021-02-19 10:13:57 來源:億速云 閱讀:273 作者:小新 欄目:開發技術

這篇文章主要介紹Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

B站視頻發布接口分析

獲取登錄Cookies

請求要帶著登錄成功后關鍵Cookies,才能被B站后臺認為是已登錄的狀態。

研究發現,以下兩個是必要的:

  1. SESSDATA(session會話cookies, 相當于登錄憑證)

  2. bili_jct(防CSRF攻擊)

這兩個都能在瀏覽器開發者工具(F12)中查看到,比如在谷歌瀏覽器中:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

然后將這兩個值復制下來,在接下來的請求中cookies帶上這兩個值即可保持登錄狀態

解決方案:

  1. 可用requests.Session.cookies = requests.utils.cookiejar_from_dict設置Cookies,將在以后請求會話中保持

  2. 可用requests.Session.headers = {'User-Agent':'???'}設置UA,將在以后請求會話中保持

preupload預上傳

請求方法GET

請求接口https://member.bilibili.com/preupload

請求體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

響應體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

請求體解決方案:

  1. name參數可由os.path.basenamepathlib.Path.name屬性獲得

  2. size參數可由os.path.getsizepathlib.Path.stat().st_size獲得

step1 準備上傳視頻

請求方法POST

請求接口https://upos-sz-upcdnbda2.bilivideo.com/[upos_uri]

替換上面[upos_uri]preupload預上傳接口響應體中upos_uriupos://的后面部份,比如https://upos-sz-upcdnbda2.bilivideo.com/ugcboss/m201010a23h45mci3cejzh3xe4a6gwq1.mp4

請求頭:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

請求體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

響應體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

step2 分批上傳視頻

重難點

請求方法PUT

請求接口同step1接口

請求頭同step1接口

請求體(分兩個部份):

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

請求體解決方案:

params參數通過requests.put的params參數傳遞,payload通過requests.put的data參數傳遞

  • chunks總批次根據preupload響應體中chunk_size參數計算得出,通過math.ceil(filesize/chunk_size)向上取整。得到chunks后,在循環中改變partNumberchunk兩者

  • 內置函數open獲得視頻文件IO流。read(size=chunk_size)方法獲得指定大小的視頻字節,并通過內置函數len獲得當前批次字節數size參數。tell方法獲取當前字節位置,對應startend參數

  • 在循環中改變partNumberchunkchunkssizestartend參數

  • read讀出的字節通過requests.put的data參數傳遞過去

step3 通知上傳完畢

請求方法POST

請求接口同step1接口

請求頭同step1接口

請求體(分兩個部份):

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

PS: 上圖沒有用框框住的參數,都是固定寫死

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

請求體解決方案:

json形式的請求體可以用requests.post的json參數傳遞

輪詢獲取視頻封面

請求方法GET

請求接口https://member.bilibili.com/x/web/archive/recovers?fns=[bfilename]

注意把[bfilename]替換成在B站的視頻文件名

響應體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

解決方案: 因為要等待B站后端處理好封面圖片,所以這一步需要隔一段時間就訪問一下該接口,直到響應體的data字段不是空列表時結束輪詢

選擇推薦分區

請求方法GET

請求接口https://member.bilibili.com/x/web/archive/typeid

請求體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

PS:

  • groupid不清楚干嘛用的, 目前遇到可以固定是0或1

  • vfea不清楚干嘛用的, 空字符串即可

響應體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

選擇推薦標簽

請求方法GET

請求接口https://member.bilibili.com/x/web/archive/typeid

請求體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

響應體:

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

PS: 可以用列表推導式將標簽字符串存于列表中,再用字符串join方法用英文逗號拼接

預發布

請求方法GET

請求接口https://member.bilibili.com/x/geetest/pre/add

PS: 沒啥好講的, 直接get這個鏈接,它的響應體也沒什么有用的東西

發布視頻

經過前面的"過五關斬六將",終于到了最后一步了

請求方法POST

請求接口https://member.bilibili.com/x/vu/web/add?csrf=[bili_jct]

注意替換鏈接中csrf參數為bili_jct(一開始需要的兩個Cookies的中其一)

請求體(JSON):

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

自制類型的視頻請求體與上圖有些許差別:

  • 因為source是只針對于轉載類型視頻的,所以自制類型視頻不需要攜帶該參數

  • 新增interactive參數,取值0或1,貌似是跟允許觀眾投稿字幕有關

  • 新增no_reprint參數,取值0或1,貌似是跟自制聲明有關

  • 最重要的是聲明版權,改變copyright為1即可

Talk is cheap, Show me the code

Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例

以上是“Biblibili視頻投稿接口分析并以Python實現自動投稿功能的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方山县| 通城县| 右玉县| 宣威市| 白银市| 肥东县| 大方县| 无锡市| 千阳县| 齐河县| 包头市| 增城市| 屏边| 太谷县| 宜宾市| 通化县| 贞丰县| 武安市| 大田县| 五指山市| 仪征市| 青田县| 文登市| 石狮市| 清流县| 准格尔旗| 上栗县| 如东县| 龙泉市| 金华市| 黄骅市| 科技| 江油市| 汉川市| 扎赉特旗| 榆林市| 舞阳县| 玉屏| 宜春市| 甘德县| 抚顺县|