本地弹幕示例 totem-danmaku

随着现在B站越来越注重版权,海外党能看的番所剩无几,加上API封禁导致连 BiliHelper等插件都无从下手,实在是不爽。逐渐开始转型下载党了。可是下载党的话说来最头痛的就是弹幕看不到啊卧槽!

既然在用Linux,自然是hack一下解决方案最好了。于是花了几个小时基于python写了一个 totem 的本地视频弹幕插件,参照了CommentCoreLibrary大部分方法。

大

插件目前还在Alpha阶段,由于对GTK了解有限,还没机会做弹幕载入的设置界面,并且目前只支持滚动弹幕(顶端底部等都不支持,不过目前支持滚动弹幕的字体、字号和颜色)。策略还是采取的低效的文字控件+定时器移动。就连文字描边效果都是通过底下放四个同样的文字间接hack出来的(也是醉了)。

虽然说开坑时间不长,不过算是自己第一次亲自尝试Port CCL到别的语言和平台,发现并不是很难。废话少说,先上链接:https://github.com/jabbany/totem-danmaku

Gnome用户的福音呢。

未来功能设想:

  • 首先支持顶部底部反向滚动等弹幕模式
  • 然后按钮显示/隐藏弹幕,设置透明度等等
  • 右侧单目列表
  • 发送支持,支持设置弹幕源服务器
  • 支持通过文件名或者metadata自动搜索和获取在线弹幕

总之,感兴趣的欢迎戳项目fork项目,star项目。。。

 

高级脚本弹幕@CommentCoreLibrary

终于放假了有时间继续研发CommentCoreLibrary了。之前就有所研究高级弹幕的可行性,安全问题和兼容问题,经过一些思考终于在新的实验性平台上实现了代码弹幕的基本还原!(卧槽!)

一、安全性/沙箱

随便让一些代码在浏览器里运行是非常危险且可怕的。而代码弹幕却需要带给用户一个相对较大的活动空间,却又需要保持代码的安全性。所以沙箱(Sandboxing)设计成为了重要的第一关。有关JS沙箱,有那么两三种当时在考虑范围内。一个是通过JS实现一个 JS解释器,这样用户代码就在虚拟的解释器里面运行,而外部则可以开放一些指定的API 供其调用。然而经过一番实验发现现有的很多JS下的JS解释器速度非常慢,或者占用内存不少(比如有的用LLVM编译的,然后再用Emscripten运行的。会时不时带着浏览器崩溃。。。 Continue reading →

ABPlayerHTML5和CommentCoreLibrary

随着B站最近加紧推出了各移动终端的软件后,现在似乎从 Android到 iOS都已经齐全了,于是HTML5版的弹幕播放器就继续开始酝酿了。由于再次温习了一下ABPlayer的源码和一些实现,加上JS又学到了新的知识(呃),于是改了一下ABPlayerHTML5的弹幕核心。为了改的方便和测试方便,于是就把专门处理弹幕的部分拿了出去,结果懒得合并回去了,才出现了所谓的CommentCoreLibrary。

CommentCoreLibrary是ABPlayerHTML5的弹幕核心元件,也是任何有希望了解弹幕播放器原理或是自己实现弹幕播放器的开发者们可以参考的一个JavaScript库。各种功能,如空间拆分器、弹幕过滤器等都被分开存放,让主文件更加易懂。而且稍微改变了几处的实现、修复了几个有关3D弹幕,3D运动弹幕的BUG之类的。目前可以比较正确的解析大部分的神弹幕,当然文字拼图的弹幕由于WEB字体过大所以依然有些问题。

运行性能测试:http://tools.kanoha.org/experimental/CommentCore

相比之下ABPlayerHTML5的下一步是完善播放器的操控界面,如:播放进度条,弹幕列表,发送器等。

还有,ABPlayerHTML5 改进了获取Sina片源的机制(从猜地址法换到利用接口),主要感谢B站的Android客户端里面提供的Sina地址接口

现在获取Sina的HTML5对应视频VID可以通过:
http://video.sina.com.cn/interface/video_ids/video_ids.php?v=vid返回的JSON对象获取。获得的地址可用在:
http://v.iask.com/v_play_ipad.php?vid=ipad_vid来直接进行外链播放!

ABPlayer开发日志(二)

我发现命名撞车是件好可怕的事情= =这和所谓的“爱播搞清播放器”之类的没关系哈——ABP是纯Flash的弹幕播放器。

好吧,废话说到这里,ABPlayer基础构架貌似差不多了,目前能比较流畅的运行弹幕了,而且有了第一套Javascript接口功能。有感兴趣看看下面吧~ Continue reading →

ABPlayer 开发开始

最近发现有对KnDanmakuWP 很感兴趣的同志们,正好限于KnLiveCommentary这个东西效率实在是差,所以打算以KnLiveCommentary功能设计为基础,以PADPlayer和MukioPlayer为两个基本点,以A站播放器,B站播放器,CMP4和KnLC 为四个指导方针开始研发 ABPlayer。于是,这称作C站的计划开始。

注意此ABPlayer非彼ABPlayer(AmbiencePlayer)。

“坑爹”的研发测试界面

Continue reading →