Bilibili-XMLSubtitle-to-ASS可视化Bilibili本地视频XML弹幕转换ASS字幕转换器:新增自动转换Bilibili下载视频功能

可视化Bilibili本地视频XML弹幕转换ASS字幕转换器

一个可视化,打开即用的将B站弹幕转换为本地播放器可识别的ASS格式字幕的工具。

另外这个工具还有一个妙用,如果你想看一部曾经在B站上存在过但现在下架了的电视剧/电影的弹幕,用这个工具也能多多少少帮你做到这一点,具体方式请往下看。

版本更新:新增自动转换Bilibili下载视频功能

由于现在版本的bilibili客户端下载的视频无法直接在本地播放器打开观看,因此程序新增了在转换弹幕的过程中自动将下载的视频转换为本地播放器可以打开播放的视频文件的功能,无需用户手动选择,注意,转换后视频将无法用Bilibili UWP播放器打开观看!

项目地址

NaiboWang/Bilibili-XMLSubtitle-to-ASS: 可视化Bilibili本地视频XML弹幕转换ASS字幕转换器 (github.com)​github.com/NaiboWang/Bilibili-XMLSubtitle-to-ASS

实现效果

功能介绍

本工具可以把下载好的B站视频的默认XML弹幕文件,转换为本地播放器可以识别的ASS字幕文件并加载播放,以实现脱离B站播放器,使用本地播放器(如PotPlayer)播放视频并带弹幕的功能。同时,提供以下额外功能:

  1. 弹幕更新功能,根据info文件更新最新的弹幕(慎用,因为B站接口原因,更新后的弹幕条数可能会小于原来的条数,当然,更新后原来的弹幕文件不会被删除,而是改了名字)。
  2. 根据视频大小自动修改对应弹幕字体大小,即自适应。
  3. 支持对使用B站Windows客户端下载的视频文件夹进行重命名。
  4. 自定义弹幕字体样式,大小,透明度, 单条弹幕持续时间。
  5. 本仓库还讲了如何下载已下架和不能下载的B站视频的弹幕文件,配合第三方下载同样可以实现本地观看弹幕功能。

效果图

【电影:美人鱼】

【名侦探柯南剧场版】

【电视剧:地下交通站】

【游戏录播:仙剑奇侠传四】

工具会自动匹配视频分辨率,以生成对应的字体大小,如:

【高分辨率视频4K:神探狄仁杰】

【低分辨率360P视频:梦比优斯奥特曼】

即不管视频多大(360P也好,4K也好),生成的字幕字体大小都是看上去很合适的,网上的其他工具暂时都没有实现这一点。

弹幕的字体样式,大小和透明度也可以调整,如楷体大号低透明度《亮剑》弹幕:

【电视剧:亮剑】

总之,只要是B站的XML弹幕文件(不论视频是从哪里下载的),都可以转换为本地播放器(如PotPlayer)可以加载的弹幕文件,效果与B站官方播放器基本无差(除了高级弹幕和自动防挡功能)。

当然,如果弹幕数量过多会影响观看,毕竟没有自动防挡字幕功能,这时候建议将字幕的透明度降低:

【鬼畜视频:念诗之王】

工具使用方式

本工具使用起来非常简单,简单的说就是三步:

  1. 下载好视频和弹幕,并放在同一个文件夹,保持视频和弹幕的XML名称符合规范(用B站客户端下载的视频默认就是符合规范的,下面会讲如何操作)。
  2. 选择带视频和弹幕的文件夹(支持多级目录,也就是说如果A文件夹下面有B和C两个文件夹,选中了A,则工具会搜索A文件夹下的视频和弹幕,以及B和C文件夹下的视频和弹幕,如果B文件夹下还有嵌套文件夹,也会逐级搜索)。
  3. 配置选项(如是否重命名目录,弹幕字体大小,样式,透明度,是否更新弹幕等等),所有的配置参数保持默认就是效果图中的效果。
  4. 点击“执行!”按钮执行。

但这里需要注意,本工具的原理是搜索视频文件,然后查找视频文件是否有符合规范的XML文件,如果有,就去转换成对应的ASS弹幕文件,且由于字体大小是根据视频文件大小自适应的,因此,只有XML文件而没有视频文件是无法执行转换的

如果用户选中的文件夹里的视频文件较多,点击“执行!”按钮后可能会卡一段时间,请不要强制关闭程序,请注意黑色控制台里的输出信息,上面会显示现在正在处理哪个文件,表明此时并不是卡死了。

视频下载方式

视频和弹幕一般有两种下载渠道:

  1. 直接通过Win 10/Win 11的Bilibili客户端下载,这种方式B站客户端会把视频和弹幕同时下载下来。
  2. 视频是从第三方渠道,如迅雷,百度/阿里网盘下载,而弹幕文件是通过Bilibili的API下载下来的(后面会讲如何使用这种方式下载B站弹幕)。

详细使用方式请看Github文档:

NaiboWang/Bilibili-XMLSubtitle-to-ASS: 可视化Bilibili本地视频XML弹幕转换ASS字幕转换器 (github.com)​github.com/NaiboWang/Bilibili-XMLSubtitle-to-ASS

首先,这个插件并不是傻瓜式安装的,很多东西需要自己去调试,以下只给有一定基础的人,所以纯伸手党就不用看了 申明: 弹幕的接收和发送的最初源码来自此贴:http://www.discuz.net/thread-2499499-1-1.html 注: 下载后发现问题很多,所以我自己修改了一遍,剔除了代码中的大部分不合理的地方加入了控制最大弹幕数的,编码GBK测试无问题,utf-8未测试(应该是不会有问题的)。 此源码为最初版,后来还重写了记录吐槽者IP、整合至视频展厅以及管理弹幕的简易后台,根据情况我在开放下载吧 播放器使用的是mukioplayer:http://code.google.com/p/mukioplayer/ 如果你要转载下面的内容,那么请注明原帖地址 --------------------------------------------我是分割线-------------------------------------------- 源码下载(内含v1.150mukioplayer): 2012-04-25第3次更新 1.追加简易后台管理一枚 2012-04-17第2次更新 1.修正了无法正确保存ZOOME字幕的问题 2012-04-05第1次更新 1.增加一个外置弹幕列表的播放器可自由选择任意一个使用 2.修改了php的引用代码和php默认不支持的函数 3.其他已知的问题 下载后需要编辑2个配置文件: 一.在config.php中设置你的数据库连接和可控制的最大弹幕数。 注:数据库填写的信息和你安装论坛时填写的一样,如果你是独立主机那么可以建立一个专门的MYSQL用户操作弹幕表,加强安全性 二.在conf.xml中设置弹幕播放器的接收和发送URL地址。  1.post.php为接收从弹幕中传入参数的  2.xml.php为生成弹幕文件的 三.关于后台:  1.可以更改admin这个文件夹名字来隐藏后台路径提高安全性  2.使用前请先配置后台文件夹中的admin.php后台基本设定,具体规则参见每行的注释  3.后台访问路径既:http://你的域名/bplayer/后台文件夹名称/admin.php 配置完成后把文件夹上传到根目录中即可 --------------------------------------------我是分割线-------------------------------------------- 进入后台 - 站长 - 数据库 - 升级中运行以下SQL语句: CREATE TABLE IF NOT EXISTS `tm_comment` ( `ID` int(12) NOT NULL auto_increment, `playerID` varchar(15) default NULL, `message` text, `color` varchar(12) default NULL, `fontsize` varchar(12) default NULL, `playtime` varchar(12) default NULL, `mode` varchar(12) default NULL, `times` datetime default NULL, KEY `ID` (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ; --------------------------------------------我是分割线-------------------------------------------- 在看到后台的界面 - 编辑器设置 - Discuz! 代码,新增一个标签,名称随意,这里我们就用iplay,添加后点击详情,在替换内容中添加如下代码: <embed width='800' height='353' quality='high' allowfullscreen='true' type='application/x-shockwave-flash' src='http://你的域名/bplayer/mukioplayer.swf?type={1}&vid;={2}'='http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash'/> 复制代码 例子中添加代码:[iplay={1}]{2}[/iplay] 解释:添加弹幕播放器 参数个数:2 参数提示语: 视频类型 视频的ID 镶套次数:1 允许使用的用户组根据自己论坛的情况而定即可 --------------------------------------------我是分割线-------------------------------------------- 完毕,在帖子中使用 [iplay=视频类型]视频ID[/iplay] 就可以添加一个弹幕播放器测试了。 视频类型解释 : 新浪 sina或者video都可以 优酷 youku 新发现: QQ视频 qq (测试可用) 6间房 6room (未测试) 视频ID解释 : 例如一个视频地址是新浪的 http://you.video.sina.com.cn/b/25323843-1272884840.html 那么 - 前面的25323843 这个值就是这个视频的ID 优酷的话 http://v.youku.com/v_show/id_XMzIzNjA2NjE2.html 就是id_至.html中间的XMzIzNjA2NjE2 --------------------------------------------我是分割线-------------------------------------------- 播放器提示评论文件加载失败或者发送失败,但是弹幕可以正确保存到数据库中的解决方法: 打开config.php,复制全部内容(已经配置好了数据库信息的),在打开xml.php,选中require 'config.php';,粘贴全部内容,保存。 某些linx服务器会出现此问题,临时用这个方法解决,暂时没有找到php生成xml不能包含其他文件的原因 --------------------------------------------我是分割线-------------------------------------------- 关于播放器侧边栏问题,压缩包里还有一个mukioplayer1.swf文件,将此文件与mukioplayer.swf替换,即可显示侧边栏 --------------------------------------------我是分割线-------------------------------------------- 总结:实现了基本的弹幕存储功能,但是管理很麻烦,而且安全性也有待加强,字段类型也弄的很随便,期待有强人来完善 若有问题可回帖,有时间我会回答,但不一定每个都回答(只针对本帖的内容和源码,在其他地方下的别问我) 此弹幕并不仅限DISCUZ论坛,PHPWIND及其他论坛也是可以整合的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值