参考文章使用Docker搭建DPlayer视频弹幕接口API后端和从零开始搭建DPlayer后端
- 借物表
Dplayer&DPlayer node - 依赖
Docker&npm
git(可选)
之前在寻找可以作为m3u8接口的播放器时,我发现了这款Dplayer,因为界面比较简洁,而且同时支持本地与导入Bilibili弹幕的功能,我选择了它。
但是不幸的是,官网所给出的弹幕接口已经年久失修,而moerat大佬的接口也处于不可用的状态,虽然在网络上依然可以找到其他人公开的接口,但是最后能依靠的还是只有自己,为了保证弹幕数据的安全,我决定在本地自行搭建一个弹幕接口后端。
从昨天折腾到现在,总算完成了最初的目标,同时也额外学习了跨域和反代相关知识。因此我打算将这次的教程(伪)分为上下两篇,上篇主要负责介绍接口后端的搭建,下篇负责讲解二级域名反代相关姿势。
在文末我会给出自己的弹幕接口,供有需要的同学自行取用。
简介
DPlayer 是一个支持弹幕的 HTML5 视频播放器。支持 Bilibili 视频和 danmaku,支持HLS,FLV,MPEG DASH,WebTorrent以及其他视频格式,支持截屏、热键、切换清晰度以及字幕等。
获取以及配置docker&npm相关环境
安装npm&nodejs
wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
xz -d node-v10.13.0-linux-x64.tar.xz
tar -xf node-v10.13.0-linux-x64.tar
ln -s ~/node-v10.13.0-linux-x64/bin/node /usr/bin/node
ln -s ~/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm
npm config set registry https://registry.npm.taobao.org //添加淘宝或任意国内镜像
可以使用npm -v
和node -v
检测是否成功安装。
安装docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
#yum
yum install docker
启动、停止、重启命令
#启动
systemctl start docker
#关闭
systemctl stop docker
#重启
systemctl restart docker
安装Docker Compose
第二步的目的是赋予权限,否则会报错。
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
拉取Dplayer-node
安装git
yum install -y git
# 获取源码,也可以下载后用ftp自行上传
git clone https://github.com/MoePlayer/DPlayer-node.git
安装运行
进入之前得到的文件夹,新建镜像并在后台运行,得到的api就已经在http://127.0.0.1:1207
端口运行了,如果使用的是http协议,在后台的设置里将端口设置为对应的http://ip:1207即可。
如果需要更改端口或者其他信息,可以在DPlayer-node文件夹下找到docker-compose.yml
并编辑,删除之前的镜像重新建一个即可。
docker-compose.yml
#编辑DPlayer-node文件夹的docker-compose.yml文件,部分修改如下
mongo:
volumes:
- ~/dplayer/db:/data/db #数据库存放文件夹,~/dplayer/db为映射在外部的路径,自行修改,
web:
ports:
- 1207:1207 #api映射到外部的端口,将前面的1207修改成你想要的即可
volumes:
- ~/dplayer/logs:/usr/src/app/logs #同数据库操作
- ~/dplayer/pm2logs:/root/.pm2/logs #同上
安装命令
cd DPlayer-node
#新建镜像
docker-compose build
#拉取其它镜像并后台运行
docker-compose up -d
删除容器
docker kill (docker ps -aq)
docker rm(docker ps -aq)
docker rmi (docker images -q)
docker volume rm(docker volume ls -q)
输入docker ps -a
即可查看当前所有容器的状态。
上篇到此结束,如果你使用的是https,那么使用没有https认证的api会被警告不安全,而如果你使用了CDN,则会出现跨域加载失败的问题,这些问题将在下篇中得到解决。
如果你使用的是阿里云服务器,需要开放对应的端口,分别是1207
(dplayernode)、6379
(redis)、27017
(mongo)。
Comments | NOTHING