【源码-弹幕服务-Dplayer】Danmaku PHP API - 一个功能丰富的Dplayer.JS配套的可扩展视频站弹幕API服务器

这是一个为DPlayer提供弹幕服务的PHP API,支持DPlayer V2和V3接口,包含B站弹幕、视频解析等丰富功能,并允许扩展插件,提供B站视频ID关系链、详情、TAG、评论等信息。
摘要由CSDN通过智能技术生成

前言:

项目地址:https://github.com/HaruhiYunona/Danmaku-PHP-API
开发博客:https://mdzz.pro

(本人就是开发者)

本API是一个弹幕服务器API, 为DPlayer提供弹幕服务器支持,也可以自行根据接口返回数据内容开发弹幕流解析。还包含丰富的扩展插件,可以提供额外的解析服务(目前支持Bilibili)。该API同时支持DPlayer V2 V3接口,自由度较高。

以下是本API已经实装的实例(下面介绍的其他API也可以照格式使用,不过就不一一赘述):

整个API实际应用的Demo: https://api.mdzz.pro/demo/

B站视频解析Demo: https://api.mdzz.pro/bilibili/parse/video?bv=BV1Na411r7tN&p=1

B站弹幕解析Demo: https://api.mdzz.pro/danmaku/bilibili/get/v3/?bv=BV1Na411r7tN

本站弹幕Demo: https://api.mdzz.pro/danmaku/server/entrance/v3/?id=BV1Na411r7tN

一、安装

本接口为即装即用式,将内容放置于服务器网站根目录下,绑定接口域名后,配置根目录下config.php即可使用。不过您需要对本API设置伪静态规则才能正常访问。

1) 修改config.php配置

配置字段列表 define(“配置名”, “配置的值”):

配置名 配置可能值 默认 作用
DB_SERVER_NAME 您的数据库地址。如为本机请填localhost localhost 数据库链接时应用的数据库地址
DB_USER_NAME 您的数据库用户名 root 数据库链接时应用的数据库用户名
DB_PASSWORD 您的数据库用户密码 123456 数据库链接时应用的数据库密码
DB_NAME 您的数据库名 danmaku 数据库链接时应用的数据库名
DB_PORT 您的数据库端口 3306 数据库链接时应用的数据库端口
ROOT 网站域名 Danmaku 在将本API作为网站子文件夹使用时是一个有效的筛除多余路径的设置。它强制定义了本API的根目录名称
TABLE_PRE_NAME /^[a-zA-Z0-9]+$/ danmaku 用于定义API所创建表的前缀,防止与其他项目共用同一个库时,数据表混淆
PORT_VERSION_TRD boolean true 用于控制API接口版本开放(针对DPlayer)。不同版本的接口返回内容不一样
PORT_VERSION_DUB boolean true 同上
TOKEN_VERIFY boolean true 设置在用户向API发送弹幕时是否需要正确的token,如果不需要验证token,可设置关闭
API_CACHE_TIME number 600 用于控制缓存时间。部分允许缓存结果的会生成缓存以节省服务器开支
API_HTTPS boolean false 是否将接口返回的内容中URL全部转换为HTTPS

2) 设置伪静态

您需要在API根目录新建一个.htaccess 文件,然后写入以下对应的内容

Nginx设置伪静态

    if (!-e $request_filename) {
   
        rewrite ^(.*)$ /index.php last;
    }
//如果您使用面板,可以直接在面板的网站管理内伪静态选项写入这个

Apache设置伪静态

Options -MultiViews
RewriteEngine On
RewriteCond %{
   REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [QSA,L]

配置好后您应该就可以使用本API了。DEMO文件夹下有demo演示,但需要您根据注释修改一点内容才可以尝试demo。

二、API介绍

由于第三方API是通过域名面向服务对象的,所以以下接口域名均以domain.com示例。实际使用请将domain.com替换为您绑定的的域名

1、本站弹幕API

由于DPlayer的设计,会自动在接口上增加/V3,该API将提供存储在本站的弹幕。如果您要请求V3版本弹幕,请在接口后加上V3, 请求V2弹幕同理

http://domain.com/danmaku/server/entrance/

1) 允许请求类型

POST GET

2) 请求内容
GET:获取本站弹幕
参数 请求允许值
id 您在程序设计时所使用的视频ID。以Bilibili为例,您用BV作为id的话就会获取该BV所记录的弹幕。除此之外还可以用aid,cid,自己设计的id等
POST:向本站服务器发送一条弹幕
参数 请求允许值 备注
author /^[a-zA-Z0-9]{1,50}$/ 发送弹幕的用户ID
color /^[a-zA-Z0-9]{1,50}$/ 发送弹幕的颜色。16进制色。
id /^[a-zA-Z0-9]{1,50}$/ 视频ID。您可以根据自己需要设置id。同GET的id,用于识别视频
text string 发送的弹幕内容
time float 弹幕处于视频的时间。浮点数
token MD5(32bit) TOKEN用于验证用户身份。默认为32位MD5码,逻辑为author+id
type number 弹幕类型,控制弹幕是滚动还是悬停消失
3) 响应样本
//GET返回弹幕(v2):
{
   
	"code": 0, //状态码
	"version": 2, //版本号
	"danmaku": [  //弹幕内容
		[1.981745, 0, "16777215", "e29a22", "测试弹幕"],
		[4.155057, 0, "16777215", "deea32", "测试"]
      // 出现时间   类型  颜色        用户ID    弹幕内容
	],
	"msg": "[Danmaku]本站弹幕加载完成"  //消息内容
}

//GET返回弹幕(V3)
{
   
	"code": 0,
	"version": 3,
	"data": [
		[1.981745, 0, "16777215", "e29a22", "测试弹幕"],
		[4.155057, 0, "16777215", "deea32", "测试"]
	],
	"msg": "[Danmaku]本站弹幕加载完成"
}

//POST返回发送弹幕的执行结果
{
   
	"code": 0,
	"msg": "弹幕发送成功~"
}

//所有接口成功状态码均为0,如果失败会是别的参数。故代码判断返回结果中code即可判断执行结果
4) 调用代码示例(以DPlayer为例。如果是自己写的播放器需要自行写代码)
                   
Vue-DPlayer一个基于Vue.js的封装DPlayer的插件,用于在网页上播放视频。它支持发送弹幕并显示弹幕,可以通过一些简单的配置来实现弹幕的发送和显示。 首先,需要在Vue组件中引入Vue-DPlayer插件,并在该组件中定义一个`danmaku`数组,用于存储发送的弹幕内容。 接着,通过Vue-DPlayer的配置项`options`中设置`danmaku`为`true`,以启用弹幕发送功能。可以通过`api`属性访问弹幕相关的API,如`api.sendDanmaku`用于发送弹幕。 在Vue-DPlayer组件的模板中,可以通过使用`v-model`指令将弹幕输入框绑定到一个变量上,以获取用户输入的弹幕内容。当用户编辑完成后,可以通过发送按钮触发发送弹幕的方法。 具体实现如下所示: ```html <template> <div> <vue-dplayer :options="playerOptions"></vue-dplayer> <input type="text" v-model="danmakuContent" placeholder="请输入弹幕内容"> <button @click="sendDanmaku">发送</button> </div> </template> <script> import VueDPlayer from 'vue-dplayer' export default { components: { VueDPlayer }, data() { return { playerOptions: { danmaku: true }, danmakuContent: '', danmaku: [] } }, methods: { sendDanmaku() { this.danmaku.push(this.danmakuContent) // 使用Vue-DPlayerAPI发送弹幕 this.$refs.dplayer.api.sendDanmaku(this.danmakuContent) this.danmakuContent = '' // 清空输入框 } } } </script> ``` 以上代码会在网页上显示一个视频播放器和一个输入框,用户可以在输入框中输入弹幕内容,并通过点击发送按钮发送弹幕。发送的弹幕内容会被保存在`danmaku`数组中,并显示在视频播放器上。 这样,就可以通过Vue-DPlayer实现在网页上发送和显示弹幕的功能了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值