悲報:目前由于B站更新,暫時無法使用。
youtube-dl的作者在gayhub上有相關報錯,請隨時關注。
我現在很懷疑瀏覽器是對系統有什么負優化之類的,打開一個視頻——html5播放器——cpu瞬間飛起到75度。關掉的話瞬間變成47度左右——打開進程監控htop一看cpu的一個內核基本滿載了啊,真是一核有難三核圍觀。如果使用mpv雖然cpu占用也很高,但是溫度正常,因為每個內核都在工作。想想如果想無腦看完一整個番劇的話還是調用mpv在線播放的好。
原理
簡單,mpv簡直神器啊,后面接上視頻地址就可以播放流媒體了!而且B站視頻編號大部分相對固定,只要變換幾個參量即可——即所謂的av號。
所需環境
- python3(朋友一生一起走,再用shell你是狗。誰讓python跨平臺好一些呢……)
- python需要os、csv、string模塊
- mpv
- 只了解OpenSUSE下的mpv怎么用,Mac和windows的不了解。尤其是windows不知道能不能直接調用不用設置環境變量什么的
程序構成
1、python腳本
明明為main.py還是什么的隨意,只要能執行好記住就可以了。這里我用python3執行的。代碼如下:
import csv
import string
import os
def Play(video_id,total): #輸入了av號和總集數,默認無腦播放整個番劇——B站官方有版權的暫時不行
total=total+1
status=0
for i in range(1,total):
if status > 0 :
print("系統錯誤!")
break
url='https://www.bilibili.com/video/'+str(video_id)+'/index_'+str(i)+'.html'
cmd='mpv -fs '+url #不想默認全屏放映的話去掉 -fs 即可
status=os.system(cmd)
def Menu(video_info): #需要配合data.csv文件,每一行共三個數據,分別時番劇名稱、av號、總集數。記住:不許有空行!
print("您的數據庫中有以下番劇,請選擇對應的序號以播放:")
i=0
for data in video_info :
i=i+1
dis="["+str(i)+"]"+data[0]
print(dis)
def Select(video_info):
num=input("您的選擇是:")
num=int(num)
i=0
for data in video_info :
i=i+1
if num == i :
Play(data[1],int(data[2]))
break
else:
continue
break
with open("data.csv","r",encoding="utf-8") as csvfile: #生成選擇界面
load_data=csv.reader(csvfile)
Menu(load_data)
with open("data.csv","r",encoding="utf-8") as csvfile: #開始選擇,請開始你的表演
cmd=csv.reader(csvfile)
Select(cmd)
2、數據文件data.csv
因為csv文件比較好寫,方便用戶自己添加。其實就是每行的每個不同的數據間使用逗號——英文輸入狀態下——來區分。數據結構如下:
=========以下為data.csv文件內容============
自定義番劇在選擇菜單中顯示的名稱,番劇的av號。例如av106,番劇共有集數
這里需要注意的是:不許有空行出現,如果有的話一定要刪除,這是python檢查邊界的問題,暫時沒修復——不過配置文件隨意出現空行的確是不應該的啊哈。名稱中最好也不要使用逗號。
以下是我的data.csv文件內容,番劇是我自己比較喜歡的。
這個美術社大有問題[臺配],av11219584,12
變態王子與不笑貓[臺配],av11990876,12
灼眼的夏娜[第一季][臺配],av13422146,25
中二病也要談戀愛[第一季][臺配],av12928395,13
廢天使加百列/珈百璃的墮落[臺配],av11231043,12
Re0:從零開始的虐斯巴魯生活[臺配],av8927491,26
注意,一般最后一條數據后很多人會無意按下回車,這個空行也會被判定為數據從而報錯,一定要檢查。所以文本編輯器中有“顯示行號”這個功能很不錯。
沒卵用的使用指南
把腳本和配置文件data.csv放在一個目錄下,然后不管你用什么辦法,用python執行這個腳本,然后按照提示選擇你想要看的番劇即可。
PS:默認的情況下會無腦把整個番劇播放完畢的,如果你要是看十萬個為什么那可要小心了。
警告
- 一旦選擇生效后會無腦地將整個番劇播放完畢的,關閉了播放器會自動播放下一集(因為關閉不屬于異常退出),如果不想繼續瀏覽的話最好強制終止腳本(CLI中Ctrl+C)。
- 只適用于當前B站(看代碼就知道了……)
- 理論上適用于一切常規B站視頻。但直播、官方購買版權的番劇無效。
- 想看彈幕的請出門左轉gayhub找Bilidan。
- 純粹個人寫的娛樂腳本,穩定性、易用性、交互以及流程的合理性都不完美,本人也無法對其做出任何保證——不在乎這些的話請繼續。
- 可以使用的前提是你的網絡連接正常且能正常訪問B站(沒有網你還在大聲什么啊,^ _ ^)。
不成熟的小建議
- B站什么時候做PC客戶端啊——雖然最后還是不會有Linux版的。
- B站特色彈幕沒有了,如果想看彈幕的話可以在gayhub上找Bilidan項目——雖然年久失修但是還能用,體驗嘛……可能會有些許卡頓,或許因人而異吧。