• 欢迎访问爱玩吧
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏爱玩吧

[教程]使用Docker搭建DPlayer视频弹幕接口API后端

实用教程 aiwanyule 4年前 (2021-05-12) 已收录
文章目录[隐藏]

说明:之前有同学要求博主出个DPlayer弹幕后端搭建教程,刚好本博客的Handsome主题更新并完美适配了Dplayer,然后就研究了下,发现了点小问题,如作者提供的弹幕API加载不出弹幕,而且Typecho当中的Dplayer插件有点旧无法对接V3后端,不知道其它程序插件是不是这样,这里博主只能使用HTML代码直接输出调用,经测试已完全正常加载弹幕和观看。这里就说下搭建及使用方法。

  1. 2020.10.3
  2. 弹幕api接口已修复,长期可用,https://dplayer.moerats.com,如出现问题留言即可。
  3. 2020.10.27
  4. 由于有些人不太喜欢Docker搭建,所以下面补齐CentOSDebianUbuntu手动搭建教程

简介

DPlayer是一个支持弹幕的HTML5视频播放器。支持Bilibili视频和danmaku,支持HLSFLVMPEG DASHWebTorrent以及其他视频格式,支持截屏、热键、切换清晰度以及字幕等。

安装

作者提供的弹幕后端搭建方法挺多的,这里选择一个搭建最快,版本最新的一种。

Github地址:https://github.com/MoePlayer/DPlayer-node

Docker安装

1、安装Docker

  1. #CentOS 6
  2. rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  3. yum update -y
  4. yum -y install docker-io
  5. service docker start
  6. chkconfig docker on
  7. #CentOS 7、Debian、Ubuntu
  8. curl -sSL https://get.docker.com/ | sh
  9. systemctl start docker
  10. systemctl enable docker

2、安装Docker Compose

  1. curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  2. chmod +x /usr/local/bin/docker-compose

3、运行镜像
安装git

  1. #Debian、Ubuntu系统
  2. apt install git -y
  3. #CentOS系统
  4. yum install -y git

再使用命令:

  1. #拉取源码
  2. git clone https://github.com/MoePlayer/DPlayer-node.git
  3. cd DPlayer-node
  4. #新建镜像
  5. docker-compose build
  6. #拉取其它镜像并后台运行
  7. docker-compose up -d

此时api地址为http://ip:1207,数据和日志存放在/root/dplayer文件夹。

当然如果你想其它端口,或者修改存放文件夹路径,那你在上面的新建镜像之前,作出如下操作:

  1. #编辑DPlayer-node文件夹的docker-compose.yml文件,部分修改如下
  2. mongo:
  3. volumes:
  4. - ~/dplayer/db:/data/db #数据库存放文件夹,~/dplayer/db为映射在外部的路径,自行修改,
  5. web:
  6. ports:
  7. - 1207:1207 #api映射到外部的端口,将前面的1207修改成你想要的即可
  8. volumes:
  9. - ~/dplayer/logs:/usr/src/app/logs #同数据库操作
  10. - ~/dplayer/pm2logs:/root/.pm2/logs #同上

改完后再新建镜像即可,如果你已经新建镜像了,但想改,那就清空之前的镜像再修改,方法参考→传送门

CentOS安装

  1. 提示:教程适用于CentOS 78系统。

1、安装NodeJS

  1. curl -sL https://rpm.nodesource.com/setup_10.x | bash -
  2. yum install nodejs git -y

2、安装Mongodb

  1. #将下面命令一起复制进SSH客户端运行
  2. cat <<EOF > /etc/yum.repos.d/mongodb.repo
  3. [mongodb-org-4.0]
  4. name=MongoDB Repository
  5. baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
  6. gpgcheck=1
  7. enabled=1
  8. gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
  9. EOF
  10. #安装mongodb
  11. yum -y install mongodb-org
  12. systemctl start mongod
  13. systemctl enable mongod

3、安装Redis

  1. #CentOS 7系统
  2. yum install epel-release -y
  3. yum install redis -y
  4. systemctl start redis
  5. systemctl enable redis
  6. #CentOS 8系统
  7. yum install redis -y
  8. systemctl start redis
  9. systemctl enable redis

4、安装弹幕服务器

  1. #拉取源码
  2. git clone https://github.com/MoePlayer/DPlayer-node.git
  3. cd DPlayer-node
  4. npm i
  5. npm i -g pm2
  6. pm2 start index.js --name danmuapi

此时api地址为http://ip:1207

Debian安装

  1. 提示:教程适用于Debian 8910系统。

1、安装NodeJS

  1. curl -sL https://deb.nodesource.com/setup_10.x | bash -
  2. apt install -y git nodejs

2、安装Mongodb

  1. #Debian 8系统
  2. wget -qO - https://www.mongodb.org/static/pgp/server-4.0.asc | apt-key add -
  3. echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
  4. apt update -y
  5. apt -y install mongodb-org
  6. systemctl start mongod
  7. systemctl enable mongod
  8. #Debian 9系统
  9. wget -qO - https://www.mongodb.org/static/pgp/server-4.0.asc | apt-key add -
  10. echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
  11. apt update -y
  12. apt -y install mongodb-org
  13. systemctl start mongod
  14. systemctl enable mongod
  15. #Debian 10系统
  16. wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
  17. echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
  18. apt update -y
  19. apt -y install mongodb-org
  20. systemctl start mongod
  21. systemctl enable mongod

3、安装Redis

  1. apt install redis-server -y

4、安装弹幕服务器

  1. #拉取源码
  2. git clone https://github.com/MoePlayer/DPlayer-node.git
  3. cd DPlayer-node
  4. npm i
  5. npm i -g pm2
  6. pm2 start index.js --name danmuapi

此时api地址为http://ip:1207

Ubuntu安装

  1. 提示:教程适用于Ubuntu 16.0418.0420.04系统。

1、安装NodeJS

  1. curl -sL https://deb.nodesource.com/setup_10.x | bash -
  2. apt install -y git nodejs

2、安装Mongodb

  1. #Ubuntu 16.04系统
  2. wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
  3. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
  4. apt update -y
  5. apt install -y mongodb-org
  6. systemctl start mongod
  7. systemctl enable mongod
  8. #Ubuntu 18.04系统
  9. wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
  10. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
  11. apt update -y
  12. apt install -y mongodb-org
  13. systemctl start mongod
  14. systemctl enable mongod
  15. #Ubuntu 20.04系统
  16. wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
  17. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
  18. apt update -y
  19. apt install -y mongodb-org
  20. systemctl start mongod
  21. systemctl enable mongod

3、安装Redis

  1. apt install redis-server -y

4、安装弹幕服务器

  1. #拉取源码
  2. git clone https://github.com/MoePlayer/DPlayer-node.git
  3. cd DPlayer-node
  4. npm i
  5. npm i -g pm2
  6. pm2 start index.js --name danmuapi

此时api地址为http://ip:1207

域名反代

如果你的博客已经开启了https访问,那api也需要https地址,所以只使用ip:端口是不行的,这里就需要使用域名反代了。博主喜欢Caddy,所以这里说下宝塔和Caddy反代,其它一键环境的建议看官方文档或自行搜索。

如果你服务器没有安装Nginx/Apache的,可以用下Caddy,很方便很快,记得提前将域名解析到服务器。

1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:1207,再启用反向代理即可。至于启用SSL就不说了,直接在站点配置就可以看到。

2、Caddy反代
安装Caddy

  1. wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
  2. #备用地址
  3. wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

  1. #以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
  2. echo "xx.com {
  3. tls admin@moerats.com
  4. proxy / http://127.0.0.1:1207
  5. }" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

  1. /etc/init.d/caddy start

反代好了后,你的API地址就为https://xx.com

使用

作者提供了很多插件,这里列举一点:

  1. Typechohttps://github.com/volio/DPlayer-for-typecho
  2. Hexohttps://github.com/NextMoe/hexo-tag-dplayer
  3. Z-Bloghttps://github.com/fghrsh/DPlayer_for_Z-BlogPHP
  4. Discuz!:https://coding.net/u/Click_04/p/video/git
  5. WordPresshttps://github.com/BlueCocoa/DPlayer-WordPress

不过Typecho插件暂时用不了,其它程序暂时不清楚,所以这里提供一个播放器的HTML代码,代码如下:

  1. <link href="https://www.moerats.com/usr/dplayer/DPlayer.min.css" rel="stylesheet">
  2. <div id="dplayer"></div>
  3. <script src="https://www.moerats.com/usr/dplayer/DPlayer.min.js"></script>
  4. <script src="https://cdnjs.loli.net/ajax/libs/blueimp-md5/2.10.0/js/md5.min.js"></script>
  5. <script>
  6. var url="https://www.moerats.com/xx.mp4"; //这里填写视频地址
  7. var id=md5(url);
  8. const dp = new DPlayer({
  9. container: document.getElementById('dplayer'),
  10. video: {
  11. url: url
  12. },
  13. danmaku: {
  14. id: id,
  15. api: 'https://dplayer.moerats.com/' //这里填写弹幕地址
  16. }
  17. });
  18. </script>

直接将代码贴进文章里即可,如果在Typecho开发版中使用不正常的话,可能还需要用两排!!!将代码上下围住使其强制输出,比如:

  1. #特殊原因,不得已才加上o,使用的时候记得去掉
  2. o!!!
  3. 代码
  4. o!!!

还有更多功能及使用方法可以查看→传送门

演示

  1. 博主知道有人懒搭建的,所以这里提供个弹幕API地址:https://dplayer.moerats.com/。

var url=”https://www.moerats.com/usr/dplayer/xx.mp4&#8243;;
var id=md5(url);
const dp = new DPlayer({
container: document.getElementById(‘dplayer’),
video: {
url: url
},
danmaku: {
id: id,
api: ‘https://dplayer.moerats.com/&#8217;
}
});

好了,可以在视频里发彩色弹幕了,如果该视频播放器不显示的话,刷新一下就行了。


爱玩吧 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[教程]使用Docker搭建DPlayer视频弹幕接口API后端
喜欢 (0)