对接苹果CMS
提示:发布系统会逐渐弃用,苹果CMS建议直接使用EFV自带的采集api,操作更方便。

准备工作

一、开放数据库外网访问权限

进入宝塔面板,点击左侧数据库,找到苹果CMS的数据库名,点击右侧权限,访问权限选择指定ipip地址为发布系统的服务器ip

二、开放数据库外网访问端口

进入宝塔面板,点击左侧安全,放行3306端口

如果服务器面板本身存在安全组,比如阿里云、腾讯云等,也需要开放一下3306端口。

三、修改数据库配置

提示:该步骤仅限于Mysql 5.6及以上的版本,5.5及更低版本的数据库可不需要操作该步骤。

进入宝塔面板,点击左侧软件商店,找到安装的Mysql,点击右侧的设置,选择配置修改,将sql-mode一行改成sql-mode=NO_ENGINE_SUBSTITUTION

改好后,再修改max_connections = 500max_connections = 5000,接下来重新启动Mysql使修改生效,必须重启。

四、设置发布到苹果CMS的域名

提示:建议绑定域名开启ssl,并使用https://格式。

由于封面和m3u8的链接域名由高级版转码设置的绑定域名决定,所以需要前往EFV高级版转码设置,修改绑定域名为你绑定EFV高级版的域名即可。

使用教程

1、注册一个可以发布即有发布权限的账号

首先去发布系统前台注册一个账号(没安装发布系统的需要前往安装:安装教程,访问地址默认ip:7002)。

注册好了后,我们此时会看到图像下方显示审核中,此时还没有获取发布权限。

然后使用管理员账号访问后台,对该账号进行审核,点击审核通过,此时该账号就拥有了发布权限(注意管理员账号安装发布系统的时候,会自动给你账号信息)。

接下来由于缓存问题,我们需要退出发布系统首页注册的账号,然后重新登录该账户,此时会看到图像下方显示正式用户,则已经获取了发布权限。

2、配置该账号需要发布的苹果CMS数据库

提示:由于一个账号只能配置一个CMS,如果你想同时发布到多个CMS,则注册多个账号,并配置好相关数据库,这样发布是统一生效。

点击发布系统前台左侧的自动发布设置,填好你的苹果CMS数据库信息,类型选择苹果CMS,再测试连接,显示连接成功即可。

3、对应好EFV高级版和苹果CMS的分类关系

提示:该处可以将高级版分类下的视频发布到对应的苹果CMS分类中,如果未指定好相关分类,则默认发布到苹果CMS第一个分类中。

点击发布系统前台左侧分类设置,添加对应关系,即对应好EFV高级版和苹果CMS的分类,选择高级版分类和对应入库id选项,该id为苹果CMS的分类id

EFV高级版的视频分类,可前往后台左侧 ⇒ CMS相关 ⇒ 分类管理,添加相应的分类信息,分类类型选择影视剧,然后就可以在视频管理处给相应的视频选择分类了。

苹果CMS的分类id,可前往苹果CMS后台,点击导航的基础栏目,选择左侧分类管理,查看分类名称,比如:6、动作片,则动作片的id6

4、配置通知接口、方便从EFV后台直接发布到苹果CMS

发布方法有2种,直接登录发布系统手动全部发布,不过这样可能有点麻烦;所以我们可以配置通知接口、然后可以从EFV后台直接发布到苹果CMS

我们先前往EFV高级版后台,点击转码设置,设置一下对接域名,格式http://ip:7002/api/dopublish?code=efvcodeip:7002为发布系统访问的地址,efvcode高级版的授权码,请修改为自己的,最后再开启转码通知即可。

到这里我们自动发布就已经配置好了。

注意自动发布是不需要在发布系统里发布视频,也就是配置好了相关信息后,发布系统就可以直接甩一边了,直接在EFV高级版后台就可以将视频或者剧集发布到苹果CMS了。

5、开始将EFV高级版的视频发布到苹果CMS

发布之前需要准备的工作如下:

1、可提前在EFV高级版后台编辑好电影、剧集的详情信息,比如标签,简介等,可直接从后台的豆瓣接口获取;如果视频找不到详细信息可直接跳过编辑。
2、对于剧集,请先在EFV高级版后台编辑并添加好现有的单集;不然单集会被当电影发布到苹果CMS,会增加后期的改正工作。
3、提前将电影和剧集分类好,不然你在发布系统设置的分类对应会无效。

注意发布方式分电影 和 剧集两种情况,且电影又分为3种方式,分别是 单个视频发布、全部视频发布和定时发布,这里都会说下,仔细看完。

电影发布之第1种即单个视频发布,该方式只能发布单个视频,可前往EFV高级版后台 ⇒ 进入视频管理,点击视频操作,选择正式发布。

电影发布之第2种即全部视频发布,该方式可发布全部转码完成的视频,可前往EFV高级版后台 ⇒ 进入视频管理,点击全部视频发布。

提示:如果你有剧集,且单集未添加进剧集,则慎用全部视频发布,不然会将未添加的单集当电影发布过去。

电影发布之第3种即定时发布,该方式在指定时间内,将某个分类的视频,依次发布n个出去,相关教程参考:点击查看

剧集发布,发布剧集之前,请提前将剧集里面的单集添加到剧集里面,相关教程参考:点击查看,然后点击想要发布的剧集右侧选项,点击正式发布即可。

如果你发布的剧集还未完结,可以先添加当前已更新的单集并提前发布到苹果CMS,后面有新单集再添加进剧集,发布系统会自动将新分集同步更新到苹果CMS

最后如果你把苹果CMS的某个发布过的数据误删了 或者 修改过高级版的电影/剧集详情信息,则可以下架你需要发布的电影或剧集,然后重新发布,苹果CMS那边数据会自动新增/修改,下架参考:点击查看

相关疑问及问题解决

1、手动发布 和 自动发布区别

手动发布,也就是直接在发布系统前台,点击发布;可将在当前EFV高级版后台已经发布的电影和剧集发布到苹果CMS。
自动发布(推荐),需依照教程配置好通知接口,然后你在EFV高级版后台发布的电影和剧集会直接发布到苹果CMS,无需在发布系统操作。

2、发布系统前台Mysql连通失败

1、CMS所在的服务器,数据库的3306端口没有开放,或者未给数据库设置发布系统ip的连接权限;解决方案看该文档准备工作。
2、发布系统前台CMS所在的数据库ip、用户名、密码填写有误;切勿在后面加空格。
3、发布系统所在的服务器连不通苹果cms所在的服务器,可在发布系统所在服务器使用命令ping 1.2.3.4,后面为苹果cms ip。

3、发布后,苹果CMS没数据

1、如果是Mysql 5.6及以上的版本,可以检查下配置文件sql-mode一行是否有过修改,修改后需重启Mysql;解决方案看该文档准备工作。
2、你填写的苹果cms数据库信息有误,连接测试不通。
3、你没有在EFV高级版后台配置对接域名和开启转码通知 或者 配置有误(即对接域名不对或者授权码没改成自己的)。
4、检查下苹果CMS默认的数据表名称,即mac开头的表,默认只能发布mac表,如有修改,则需要修改发布系统源码app/controller/admin.js里面对应的表名称,重启生效。

相关修改

修改如果不会的,比如你想修改部分显示文字问题,或者想发布除了m3u8地址外,还想发布带播放器的预览地址,如:

这种有需求,就直接联系我,我给文件你替换下就行了。

1、修改发布过去的图片、M3U8域名

由于图片和m3u8的域名由高级版转码设置的绑定域名决定,所以只需要前往高级版转码设置,修改绑定域名为你想要发布的域名即可,然后删除已经发布到第三方CMS的资源,重新发布即可。

1、比如我转码设置绑定的域名为https://evf.zhuanma.me 则发布到苹果CMS的地址为https://evf.zhuanma.me/videos/202006/20/5eee10333b01ee5103ad843c/24d159/index.m3u8
2、如果我转码设置绑定的域名为空,也就是不设置,则发布到苹果CMS的地址为/videos/202006/20/5eee10333b01ee5103ad843c/24d159/index.m3u8

可自行拓展玩法,比如绑定CDN域名等等,这样发布成功后,苹果CMS的资源全部从该域名读取,而不会从转码服务器读取了。

2、修改发布的封面类型,即将封面2改成封面1

发布系统默认发布海报即封面2到第三方CMS,如果你想发布封面1到第三方CMS,则修改app/controller/admin.js,大致如下:

#批量搜索如下代码,且直接全部替换
搜索代码:movie.poster2 ? host + movie.poster2.url : host + newpath + '/350.jpg'
替换代码:movie.poster ? host + movie.poster : host + newpath + '/350.jpg'

搜索代码:movie.poster2 ? host + movie.poster2.url : ''
替换代码:movie.poster ? host + movie.poster : ''

替换好了后,使用命令重启生效即可。

3、修改发布过去的播放器

默认发布的播放器为dplayer,如果你想修改为其它播放器,则修改app/controller/admin.js,大致如下:

#批量搜索如下代码,且直接全部替换,xxxx为你新的播放器代码
搜索代码:vod_play_from: 'dplayer',
替换代码:vod_play_from: 'xxxx',

替换好了后,使用命令重启生效即可。

4、如何对接其它CMS程序

如果你想发布到其它用Mysql数据库的CMS,则这里提示下修改方案,可直接在苹果CMS所处的范围修改代码。

主要修改文件app/controller/admin.js,部分代码说明:

#判断你在发布系统前台选择的CMS类型,此处为苹果CMS
themysql.type === 'maccms'

#相关信息传输,左侧就是CMS主要表的相关字段,右边为EFV高级版相关字段
vod_tag: movie.tags ? movie.tags.join(',') : '',
vod_class: movie.tags ? movie.tags.join(',') : '',
vod_actor: movie.stars ? movie.stars.join(',') : '',
vod_director: movie.director ? movie.director.join(',') : '',
vod_writer: movie.writer ? movie.writer.join(',') : '',
vod_blurb: movie.summary ? movie.summary : '',

#mac_vod为信息传输所在的表
'INSERT INTO mac_vod SET ?'

大致上也就需要修改这些,然后就自行修改了,期间建议使用开发者模式进行调试,命令:

#进入发布系统源码目录
cd /home/express-ffmpeg-zdfb
npm stop
npm run dev

最后没问题了,再用正式环境命令运行。