我攤牌了!我用Python幫B站的小姐姐配好看的字幕!
公眾號?“菜鳥學Python”
第438篇原創(chuàng),設為 “星標”,一起學Python!

對于很多B站的忠實小伙伴們來說,在B站上看各個Up主們?yōu)榇蠹曳窒砀鞣N內容是一件非常幸福的事情,可是大家也會遇到視頻中沒有提供彈幕的尷尬局面,比如大家在B站看小姐姐的時候,經常會遇到沒有字幕的情況,這種聽不清小姐姐說什么,又沒有彈幕加以解釋的情況,會很別扭~~
因此,小編今天就帶領大家來為B站的小姐姐們配上好看的字幕,讓大家在欣賞小姐姐的同時也能有字幕的陪伴。
00.整體的思路如下:

audio = AudioFileClip("video.flv").write_audiofile("audio.mp3")網址:https://aismartvip.com/



03.發(fā)送彈幕
對于彈幕的發(fā)送,這里我們利用的是bilibili_api庫,注意,小編使用的是1.0.0版本的,由于bilibili_api庫更新的非??欤也煌姹局g兼容性不是特別好,所以要想運行下面的程序且不出錯誤的話,需要大家安裝1.0.0版本的bilibili_api庫。安裝方式也很簡單,只需要pip install bilibili-api==1.0.0即可完成安裝。
01).首先,需要將彈幕文件處理為列表形式,而列表中的元素是“(時間,彈幕內容)”的元組形式。程序如下圖所示:

上述的程序中,首先讀入字幕文件,然后按照彈幕文件的行號,來進行處理,如果是時間,那么就處理成相應的時間格式,如果是彈幕內容,則直接放入到元組中。
02).處理好字幕文件后,接下來就可以發(fā)送彈幕了,對于彈幕,我們需要設置一個彈幕類對象,它的要求如下所示:

這里需要重點關注四個參數(shù),分別是text,表示彈幕的內容,dm_time表示的是彈幕出現(xiàn)的時間,這兩個內容我們已經在上面的彈幕文件處理中設置完成,然后是mode參數(shù),指定的是彈幕在屏幕中的位置是哪里,而font_size指定的就是彈幕的大小。彈幕的發(fā)送程序如下所示:

上述程序中的sessdata和csrf是用來進行身份驗證的信息,程序首先初始化一個VideoOperator類,用來向視頻發(fā)送彈幕,而發(fā)送的彈幕信息則是通過構造Danmaku類來進行實現(xiàn)。需要注意的是,這里要間隔一定的時間才能進行彈幕的發(fā)送,否則會被檢測為刷屏而不允許發(fā)彈幕。間隔時間的話,在20秒以上最為穩(wěn)妥。
03).如何獲取key,這里的sessdata和csrf該如何獲取呢?

大家點擊想要添加字幕的視頻頁面,點擊左上方的小鎖,然后點擊Cookie后,找到右邊的SESSDATA和bili_jct,這兩個cookie下的“內容”就是我們需要的sessdata和csrf信息。
說了這么多,最后一起來看一下效果展示:
怎么樣,學Python很有意思吧,還等啥趕緊操練起來給喜歡的小姐姐up主發(fā)送一波排山倒海的字幕吧。

程序員GitHub,現(xiàn)已正式上線!
接下來我們將會在該公眾號上,專注為大家分享GitHub上有趣的開源庫包括Python,Java,Go,前端開發(fā)等優(yōu)質的學習資源和技術,分享一些程序員圈的新鮮趣事。
年度爆款文案
6).30個Python奇淫技巧集?
點這里,獲取新手福利

