最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Biblibili視頻投稿接口分析并以Python實(shí)現(xiàn)自動(dòng)投稿功能

 更新時(shí)間:2021年02月05日 10:50:05   作者:nbody1996  
這篇文章主要介紹了Biblibili視頻投稿接口分析并以Python實(shí)現(xiàn)自動(dòng)投稿功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

B站視頻發(fā)布接口分析

項(xiàng)目地址:https://gitee.com/nbody1996/bilibili_video_uploader

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

獲取登錄Cookies

請(qǐng)求要帶著登錄成功后關(guān)鍵Cookies,才能被B站后臺(tái)認(rèn)為是已登錄的狀態(tài)。

研究發(fā)現(xiàn),以下兩個(gè)是必要的:

  1. SESSDATA(session會(huì)話cookies, 相當(dāng)于登錄憑證)
  2. bili_jct(防CSRF攻擊)

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

然后將這兩個(gè)值復(fù)制下來(lái),在接下來(lái)的請(qǐng)求中cookies帶上這兩個(gè)值即可保持登錄狀態(tài)

解決方案:

  1. 可用requests.Session.cookies = requests.utils.cookiejar_from_dict設(shè)置Cookies,將在以后請(qǐng)求會(huì)話中保持
  2. 可用requests.Session.headers = {'User-Agent':'???'}設(shè)置UA,將在以后請(qǐng)求會(huì)話中保持

preupload預(yù)上傳

請(qǐng)求方法GET

請(qǐng)求接口https://member.bilibili.com/preupload

請(qǐng)求體:

響應(yīng)體:

請(qǐng)求體解決方案:

  1. name參數(shù)可由os.path.basenamepathlib.Path.name屬性獲得
  2. size參數(shù)可由os.path.getsizepathlib.Path.stat().st_size獲得

step1 準(zhǔn)備上傳視頻

請(qǐng)求方法POST

請(qǐng)求接口https://upos-sz-upcdnbda2.bilivideo.com/[upos_uri]

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

請(qǐng)求頭:

請(qǐng)求體:

響應(yīng)體:

step2 分批上傳視頻

重難點(diǎn)

請(qǐng)求方法PUT

請(qǐng)求接口同step1接口

請(qǐng)求頭同step1接口

請(qǐng)求體(分兩個(gè)部份):

請(qǐng)求體解決方案:

params參數(shù)通過(guò)requests.put的params參數(shù)傳遞,payload通過(guò)requests.put的data參數(shù)傳遞

  • chunks總批次根據(jù)preupload響應(yīng)體中chunk_size參數(shù)計(jì)算得出,通過(guò)math.ceil(filesize/chunk_size)向上取整。得到chunks后,在循環(huán)中改變partNumber、chunk兩者
  • 內(nèi)置函數(shù)open獲得視頻文件IO流。read(size=chunk_size)方法獲得指定大小的視頻字節(jié),并通過(guò)內(nèi)置函數(shù)len獲得當(dāng)前批次字節(jié)數(shù)size參數(shù)。tell方法獲取當(dāng)前字節(jié)位置,對(duì)應(yīng)startend參數(shù)
  • 在循環(huán)中改變partNumber、chunk、chunks、sizestartend參數(shù)
  • read讀出的字節(jié)通過(guò)requests.put的data參數(shù)傳遞過(guò)去

step3 通知上傳完畢

請(qǐng)求方法POST

請(qǐng)求接口同step1接口

請(qǐng)求頭同step1接口

請(qǐng)求體(分兩個(gè)部份):

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

請(qǐng)求體解決方案:

json形式的請(qǐng)求體可以用requests.post的json參數(shù)傳遞

輪詢獲取視頻封面

請(qǐng)求方法GET

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

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

響應(yīng)體:

解決方案: 因?yàn)橐却鼴站后端處理好封面圖片,所以這一步需要隔一段時(shí)間就訪問一下該接口,直到響應(yīng)體的data字段不是空列表時(shí)結(jié)束輪詢

選擇推薦分區(qū)

請(qǐng)求方法GET

請(qǐng)求接口https://member.bilibili.com/x/web/archive/typeid

請(qǐng)求體:

PS:

  • groupid不清楚干嘛用的, 目前遇到可以固定是0或1
  • vfea不清楚干嘛用的, 空字符串即可

響應(yīng)體:

選擇推薦標(biāo)簽

請(qǐng)求方法GET

請(qǐng)求接口https://member.bilibili.com/x/web/archive/typeid

請(qǐng)求體:

響應(yīng)體:

PS: 可以用列表推導(dǎo)式將標(biāo)簽字符串存于列表中,再用字符串join方法用英文逗號(hào)拼接

預(yù)發(fā)布

請(qǐng)求方法GET

請(qǐng)求接口https://member.bilibili.com/x/geetest/pre/add

PS: 沒啥好講的, 直接get這個(gè)鏈接,它的響應(yīng)體也沒什么有用的東西

發(fā)布視頻

經(jīng)過(guò)前面的"過(guò)五關(guān)斬六將",終于到了最后一步了

請(qǐng)求方法POST

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

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

請(qǐng)求體(JSON):

自制類型的視頻請(qǐng)求體與上圖有些許差別:

  • 因?yàn)閟ource是只針對(duì)于轉(zhuǎn)載類型視頻的,所以自制類型視頻不需要攜帶該參數(shù)
  • 新增interactive參數(shù),取值0或1,貌似是跟允許觀眾投稿字幕有關(guān)
  • 新增no_reprint參數(shù),取值0或1,貌似是跟自制聲明有關(guān)
  • 最重要的是聲明版權(quán),改變copyright為1即可

完整代碼

Talk is cheap, Show me the code

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

到此這篇關(guān)于Biblibili視頻投稿接口分析并以Python實(shí)現(xiàn)自動(dòng)投稿功能的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)自動(dòng)投稿內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法

    Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法

    今天小編就為大家分享一篇Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 寫一個(gè)Python腳本下載嗶哩嗶哩舞蹈區(qū)的所有視頻

    寫一個(gè)Python腳本下載嗶哩嗶哩舞蹈區(qū)的所有視頻

    B 站大家都熟悉,尤其是它的舞蹈區(qū).有 100W+ 的舞蹈視頻.在沒有 wifi 的情況下,就欣賞不了這些視頻了.作為一個(gè) python 程序員,小編就寫一個(gè) Python 腳本在晚上下載舞蹈區(qū)的所有視頻,需要的朋友可以參考下
    2021-05-05
  • 在?Python?中利用Pool?進(jìn)行多處理

    在?Python?中利用Pool?進(jìn)行多處理

    這篇文章主要介紹了在?Python?中利用Pool進(jìn)行多處理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • opencv python圖像梯度實(shí)例詳解

    opencv python圖像梯度實(shí)例詳解

    這篇文章主要介紹了opencv python圖像梯度實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python中如何獲取類屬性的列表

    Python中如何獲取類屬性的列表

    這篇文章主要給大家介紹了在Python中如何獲取類屬性的列表,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • python與xml數(shù)據(jù)的交互詳解

    python與xml數(shù)據(jù)的交互詳解

    這篇文章主要介紹了python與xml數(shù)據(jù)的交互詳解,文章圍繞主題站卡詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • python3寫爬取B站視頻彈幕功能

    python3寫爬取B站視頻彈幕功能

    本篇文章給大家講解一下如何用python3寫出爬取B站視頻彈幕的功能,有興趣的讀者們參考學(xué)習(xí)下吧。
    2017-12-12
  • python讀出當(dāng)前時(shí)間精度到秒的代碼

    python讀出當(dāng)前時(shí)間精度到秒的代碼

    在本文里小編給各位分享了一篇關(guān)于python怎么讀出當(dāng)前時(shí)間精度到秒的內(nèi)容,對(duì)此有需要的朋友們可以學(xué)習(xí)參考下。
    2019-07-07
  • python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法

    python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法

    這篇文章主要介紹了python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法,實(shí)例分析了Python操作http創(chuàng)建服務(wù)器端的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python中的函數(shù)參數(shù)(位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù))

    Python中的函數(shù)參數(shù)(位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù))

    這篇文章主要介紹了Python中的函數(shù)參數(shù):位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù),需要的小伙伴可以參考下面文章內(nèi)容
    2021-09-09

最新評(píng)論

曲沃县| 金乡县| 大英县| 本溪| 进贤县| 蓬莱市| 綦江县| 道孚县| 开远市| 阆中市| 兖州市| 长乐市| 梁山县| 霸州市| 保山市| 民县| 苏尼特右旗| 岳池县| 湖州市| 吉木萨尔县| 阿瓦提县| 红桥区| 保靖县| 黄浦区| 德令哈市| 安岳县| 阳曲县| 新化县| 望都县| 夏邑县| 柞水县| 嘉定区| 南岸区| 读书| 光泽县| 中宁县| 大洼县| 怀远县| 望谟县| 岚皋县| 海门市|