<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我攤牌了!我用Python幫B站的小姐姐配好看的字幕!

          共 2363字,需瀏覽 5分鐘

           ·

          2021-01-28 17:12


          公眾號?“菜鳥學Python

          438篇原創(chuàng),設為 “星標”,一起學Python!


          對于很多B站的忠實小伙伴們來說,在B站上看各個Up主們?yōu)榇蠹曳窒砀鞣N內容是一件非常幸福的事情,可是大家也會遇到視頻中沒有提供彈幕的尷尬局面,比如大家在B站看小姐姐的時候,經常會遇到沒有字幕的情況,這種聽不清小姐姐說什么,又沒有彈幕加以解釋的情況,會很別扭~~


          因此,小編今天就帶領大家來為B站的小姐姐們配上好看的字幕,讓大家在欣賞小姐姐的同時也能有字幕的陪伴。


          00.整體的思路如下:



          01.視頻下載及音頻處理
          首先,我們要選定我們想要添加字幕的視頻,然后,將視頻下載到本地,這里下載B站視頻方式有很多,比如可以利用Chrome瀏覽器的插件《bilibili嗶哩嗶哩下載助手》來進行視頻的下載。將視頻下載完成后,我們就可以提取視頻中的音頻數(shù)據(jù),這里可以利用moivepy這個庫來進行處理,一行代碼即可搞定。程序如下:
          audio = AudioFileClip("video.flv").write_audiofile("audio.mp3")
          上述的程序中,利用AudioFileClip來提取視頻中的音頻信息,然后保存到本地的音頻文件中即可。以上我們便提取完成了音頻。



          02.音頻轉字幕文件
          有的小伙伴可能會疑惑,為什么要提取音頻數(shù)據(jù)呢,這是因為我們要利用技術來將我們聽不清的音頻轉成文字,我們雖然聽的不清楚,但是利用技術可以幫助我們很好的“聽音識字”。對于處理好的音頻,我們可以利用下面的網站,進行音頻到字幕文件的轉換。

          網址:https://aismartvip.com/


          大家可以按照上述的操作,點擊上傳音頻,然后按照自己的喜好設置任務的名稱,最后點擊開始上傳,網頁會自動進行語音的識別,并轉換成字幕文件。這里為什么要轉換為字幕文件呢,因為字幕文件中帶有時間,我們可以根據(jù)時間信息,來設定彈幕的發(fā)送時間。

          轉換完成后,大家還可以進行字幕的完善,包括時間的調整,字幕文字的更改和時間段的增加或者刪除。修改完成后,大家就可以直接下載字幕文件了,生成的字幕文件如下圖所示。

          生成的字幕文件中,分別包含了字幕的序號,還有每個字幕的時間段以及字幕的內容,接下來就是如何將字幕文件發(fā)送到B站視頻上去了。



          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ā)送一波排山倒海的字幕吧。


          如果您覺得本篇對你有用,可以收藏或者轉發(fā)給有興趣學Python的同學,原創(chuàng)不易記得來個三連哦!再次感謝!我們下篇見!




          程序員GitHub,現(xiàn)已正式上線!


          接下來我們將會在該公眾號上,專注為大家分享GitHub上有趣的開源庫包括Python,Java,Go,前端開發(fā)等優(yōu)質的學習資源和技術,分享一些程序員圈的新鮮趣事。





          年度爆款文案



          點這里,獲取新手福利

          瀏覽 76
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  偷拍真实偷窥XXX盗摄 | 熟女精品视频 | 日韩黄色电影。 | 日韩精品一级毛片在线播放 | av免费看网站 |