色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:11日期:2022-06-28 11:51:24

B站視頻發布接口分析

項目地址:https://gitee.com/nbody1996/bilibili_video_uploader

視頻地址:https://www.bilibili.com/video/BV1qt4y1v76u/

獲取登錄Cookies

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

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

SESSDATA(session會話cookies, 相當于登錄憑證) bili_jct(防CSRF攻擊)

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

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

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

解決方案:

可用requests.Session.cookies = requests.utils.cookiejar_from_dict設置Cookies,將在以后請求會話中保持 可用requests.Session.headers = {’User-Agent’:’???’}設置UA,將在以后請求會話中保持preupload預上傳

請求方法: GET

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

請求體:

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

響應體:

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

請求體解決方案:

name參數可由os.path.basename或pathlib.Path.name屬性獲得 size參數可由os.path.getsize或pathlib.Path.stat().st_size獲得step1 準備上傳視頻

請求方法: POST

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

替換上面[upos_uri]為preupload預上傳接口響應體中upos_uri的upos://的后面部份,比如https://upos-sz-upcdnbda2.bilivideo.com/ugcboss/m201010a23h35mci3cejzh2xe4a6gwq1.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后,在循環中改變partNumber、chunk兩者 內置函數open獲得視頻文件IO流。read(size=chunk_size)方法獲得指定大小的視頻字節,并通過內置函數len獲得當前批次字節數size參數。tell方法獲取當前字節位置,對應start與end參數 在循環中改變partNumber、chunk、chunks、size、start和end參數 將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實現自動投稿功能

戳它: https://gitee.com/nbodyfun/bilibili_video_uploader/raw/master/bilibili_up.py

到此這篇關于Biblibili視頻投稿接口分析并以Python實現自動投稿功能的文章就介紹到這了,更多相關Python實現自動投稿內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩欧美在线综合网高清 | 欧美jlzz18性欧美 | 怡红院亚洲怡红院首页 | 久久成人免费观看全部免费 | 亚洲欧美日韩精品香蕉 | 中文字幕无线码中文字幕网站 | 午夜性a一级毛片 | 欧美日韩精品一区二区免费看 | 午夜性激福利免费观看 | 韩国欧洲一级毛片 | 成人三级在线观看 | 亚洲精品 欧美 | 国产激爽大片在线播放 | 最近日本免费观看视频 | 久久久久久久久久久观看 | 三级精品 | 青青爽国产手机在线观看免费 | 精品99视频| 成人a毛片 | 国内自拍偷拍视频 | 久久国产精品-久久精品 | 亚洲 欧美 都市 自拍 在线 | 97高清国语自产拍中国大陆 | 欧美日韩高清性色生活片 | 国产精选91热在线观看 | 毛片网站在线看 | 日韩精品视频一区二区三区 | 亚洲高清无在码在线无弹窗 | 一级片网址 | 成人欧美一区二区三区 | 一区二区中文字幕在线观看 | 亚洲男人天堂av | 国产视频一区二区三区四区 | 三级午夜三级三点在看 | 日本欧美一区二区三区片 | 日韩成人三级 | 欧美日韩不卡在线 | 国产v精品成人免费视频400条 | 国产午夜精品久久理论片 | 午夜性片 | 午夜精品久久久久久99热7777 |