利用mpv播放b站非官方番剧
2017-11-13 本文已影响0人
Sinatori
悲报:目前由于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项目——虽然年久失修但是还能用,体验嘛……可能会有些许卡顿,或许因人而异吧。