美文网首页
利用mpv播放b站非官方番剧

利用mpv播放b站非官方番剧

作者: Sinatori | 来源:发表于2017-11-13 22:38 被阅读0次

悲报:目前由于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项目——虽然年久失修但是还能用,体验嘛……可能会有些许卡顿,或许因人而异吧。

相关文章

网友评论

      本文标题:利用mpv播放b站非官方番剧

      本文链接:https://www.haomeiwen.com/subject/yhytvxtx.html