起因#
之前我寫過一篇關於找到 B 站下架視頻歷史彈幕的文章,裡面有兩個途徑去獲取歷史彈幕
然而這兩個方式本質上都是大家自己上傳保存,一旦遇到冷門的番劇就會發現查無此彈幕
最全的彈幕庫還是 B 站自己的數據庫,所以這次我們直接通過番名去 B 的數據庫下載彈幕文件
歷史彈幕#
獲取 CID 號#
這個平台以前可以直接下載彈幕現在已經不支持了,不過沒關係我們可以自己下載。打開網站後
1. 點擊展開更多選項
數據源
-> biliplus站內搜索
接下來就可以關鍵詞搜索了,可以用條件限制以縮小範圍,如輸入 ' 秋葉原之旅 @連載動畫 ' 結果將只包含連載動畫分區的視頻
需要注意一部分較早或非官方的投稿並不在對應的分區中檢索時不應該限制分區.
下面給出了一部分常用的分區名,具體參見文檔
- 連載動畫
- 完結動畫
- 日本電影
- 國產劇
- 海外劇
此外如輸入秋葉原之旅 @m=928123
,結果將只包含哔哩哔哩番劇投稿的視頻
其中 928123 為哔哩哔哩番劇的 mid 號,可以在其個人空間的鏈接中找到
下表給出了一部分官方賬號的 mid
官方賬號 | mid |
---|---|
哔哩哔哩番劇 | 928123 |
哔哩哔哩番劇出差 | 11783021 |
哔哩哔哩電影 | 15773384 |
迷影社 | 4856007 |
2. 搜索後可以得到我們想要的 AV 號
3. 其實有 av 號就可以用現有的接口轉成 cid 了,不過 biliplus 有提供該功能
有興趣可以去看大佬搜集的api 文檔
點擊打開
-> 視頻cid歷史
下載彈幕並轉換#
方法一
大佬提供的根據 AV 號或者 cid 的在線獲取合併工具
方法二
- 注:以下接口可能會因為 B 站更新而失效,可以去api 文檔替換
cid 號粘貼到該鏈接最後並訪問下載,segment_index=1 為 0-6 分鐘的彈幕,需要根據視頻時長不斷遞增才能得到完整彈幕
https://api.bilibili.com/x/v2/dm/web/seg.so?type=1&segment_index=1&oid=
下載後可以看到是個 seg.so 文件,我們可以直接用現成的在線轉換
也可以自己寫一個解析代碼去轉換,有興趣可以看看這個文檔
將 seg.so 轉換成 ass 格式
將 ass 格式轉換成 xml 格式
至此我們的彈幕文件就下好了