介绍

平台历史与简介

很久以前,弹弹play只是一个能播放弹幕的本地视频播放器, 但是互联网上视频众多,即使是某个动画的同一集,都会有大量字幕组发行大量不同版本但是内容相同的视频文件, 这些视频是独立而分散的,比如在B站经常会看到某个新番有众多字幕组的多个版本,而这些版本间的弹幕并不互通。 所以为了解决多个视频共享弹幕的问题,我们决定引入服务器端。 有了服务器端之后,就可以针对每个节目建立唯一的弹幕池(弹弹play里叫弹幕库),然后让不同的视频关联到同一个弹幕库, 获取同一份弹幕,最终解决了不同视频能够共享弹幕的问题。

弹弹play开放平台,就是基于弹弹play播放器的这个功能(弹幕收发、文件识别)而发展出来的。目的是为了重新组织互联网上复杂混乱的视频文件世界,将它们识别出来并进行归类。

客户端调用流程

首先,在打开视频文件的时候,客户端应该调用Match API,传递视频文件名、hash、长度、大小之后,服务器端对文件进行识别。Match API会返回一个“此文件最有可能是...”的列表,用户需要在此列表中选择一个最适合的项目。

于是,客户端将会得到一个【节目编号(EpisodeId)】,请保存视频文件和此【节目编号】的关联。(【节目编号】表示的是某个动画的某一集,它是独立于所有视频文件的。)

之后,客户端就可以通过【节目编号】来调用Comment API获取弹弹play服务器上的弹幕了。

弹弹play服务器上的弹幕数量不够怎么办?这时可以调用Related API,客户端可以通过【节目编号】获得这个节目在A(acfun)B(bilibili)C(tucao)站上都有哪些对应的网址,从而解析这些网址并加载弹幕。

最后,当用户发送弹幕时,可以再次调用Comment API。

除此之外,当Match API返回的列表中没有用户心中所想的节目时,仍可通过Search API指定动画名称手动进行搜索。

API使用方式

编码方式

弹弹play API使用的编码方式为UTF-8。

HTTP谓词

请按照API文档的介绍,通过GET/POST等方式连接到网址,如: GET http://acplay.net/api/v1/match?filename=轻音少女10&hash=00000000000000000000000000000000&duration=1500&length=1000

服务器返回格式

如果希望服务器返回JSON格式,请在HTTP Header中设置 Accept: application/json

如果希望服务器返回XML格式,请在HTTP Header中设置 Accept: application/xml

同时设置了这两项的情况下服务器将默认使用application/xml

如果HTTP Header中未设置Accept头,服务器将默认使用application/json,但我们不保证将来会一直保持这种设置,所以还是请尽量添加此头信息。

提交数据格式

提交数据时,如果您的数据是JSON格式,请在HTTP Header中设置 Content-Type: application/json

提交数据时,如果您的数据是XML格式,请在HTTP Header中设置 Content-Type: application/xml

XML命名空间

弹弹play API中,有些XML文档的命名空间为 http://schemas.datacontract.org/2004/07/CornService.Models ,请在使用时特别注意。

测试视频

推荐使用下面的视频测试API有效性,此视频前16MB数据的MD5为 658d05841b9476ccc7420b3f0bb21c3b

下载地址:百度网盘