免費視頻轉音頻app推薦「b站視頻轉音頻軟件」

B站視頻自某年以後其緩存的視頻皆為分段分開的,比較不方便。因此個人想着用Python將其更加自動化。

既然視頻和音頻分開了,那麼必然需要先請求獲取視頻和音頻的url再通過各自的url分別獲取各自的內容。最後再藉助moviepy將視頻和音頻合成。

關於批量處理爬取,一開始想得過於複雜(當然,相較於其他更快的方式,基於此方式來說是複雜的),導致連連異常。經過一覺,發現豁然開朗。複雜點在於當找到位於Network中的關鍵name之後,想着更加自動化的獲取通用ID走了不少彎路。後面才發現通用ID就在網址中。

大體思路如下:在進入喜歡UP主的空間後,點擊播放全部(圖1),

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

​圖1

→進入新頁面,發現網址(圖2),並沒有附着視頻BV,因此需要換一種方式思考。

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖2

→右鍵檢查頁面,在Network欄下發現了特殊name(圖3),裏面包含了Up主其他的視頻(圖4,5)。

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖3

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

​圖4

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖5

→思路清晰起來了,我們可以通過請求圖2頁面,找到圖3所示信息群,再請求該URL獲取json數據迭代索引獲取各bv_id。

代碼及分析如下:

①獲取bv_id並導入相關

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:User-Agent獲取在網頁Headers部,可自行獲取鍵入。

②構建循環附帶跳出條件

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

③構建bilibiliSpider()類

1.主體框架

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:此處的合成視頻和音頻方法是調整過的,起初使用ffmpeg發現不太好使,經過交流群前輩指導改用moivepy,較方便且好使。

2.發出通用請求格式(方便

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:global意味在於其他方法處需要請求內容。

3.請求獲取標題,JSON數據,視頻和音頻Url

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:此處的title索引、jsonData索引、videoUrl索引、audioUrl索引和上文的Referer等信息皆可在圖中找到,獲取大概流程皆為右鍵檢查頁面獲取信息(圖6,7,8)。

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖6

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖7

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖8

4.保存數據

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

5.合成視頻和音頻

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:路徑一定要對,不然找不到會報錯(可以自己設置路徑,前後統一即可)。後麵條件語句那開始是清楚之前單獨的視頻和音頻,合成後的名字多了加號,以防被系統按照單獨的視頻給誤刪。

起初使用ffmpeg合成視頻和音頻並不順利(圖9),因此改用moviepy。

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

圖9

6.調用方法

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

說明:全文盡量統一

全文代碼如下:

「Python_爬蟲」爬取B站視頻;簡易版;批量指定
「Python_爬蟲」爬取B站視頻;簡易版;批量指定
「Python_爬蟲」爬取B站視頻;簡易版;批量指定
「Python_爬蟲」爬取B站視頻;簡易版;批量指定

試運行:

「Python_爬蟲」爬取B站視頻;簡易版;批量指定

綜上,還有提升空間,比如下載速度太慢。然後是畫質的選擇,爬的時候默認是最高的,具體自定義畫質還在研究(即文中的params貌似沒啥用,待測試)。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/208983.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:23
下一篇 2024-12-08 15:23

相關推薦

發表回復

登錄後才能評論