CMS端API使用
该API包括大部分CMS端数据获取,视频获取、图集获取、标签分类获取、视频m3u8等相关信息。
API
路由文件routes/index.js
,涉及到的文件controller/cms.js
,可自行修改api
返回等。
以下API2
大部分都是需要传递APIKEY
的,使用前推荐在header
中添加{token: apikey}
。
获取分类、标签、标签管理
Get /api2/gettags
#返回信息
{
"tags": [
{
"counts": 2,
"_id": "6087860146a58264c794d70d",
"tag": "邱淑贞",
"groupid": {
"_id": "6046dd714b180d7bcd0d0b4b",
"title": "人物"
}
},
{
"counts": 2,
"_id": "6087860146a58264c794d716",
"tag": "张敏"
}
],
"categories": [
{
"_id": "60d872f766c8886d0a95caec",
"title": "动漫",
"createAt": "2021-06-27T12:45:43.361Z",
"__v": 0
}
],
"taggroups": [
{
"_id": "6046dd714b180d7bcd0d0b4b",
"title": "人物",
"createAt": "2021-03-09T02:29:05.128Z",
"__v": 0
}
]
}
#参数说明
tags为标签,counts为标签出现数量,groupid为该标签已添加到的标签管理(未添加到标签管理的标签则不存在此字段)
categories为视频分类
taggroups为标签管理
全套数据获取总API
GET /api2/getcontents
#调用方法,且只能获取到已经发布的电影、剧集、图集
/api2/getcontents?page=1&size=18&category=&tag=&tags=&user=&type=movie,tv&q=&order=countDesc
#调用参数信息
size是返回符合所有条件的数量,如果我同时返回type的电影、剧集类型,则每个类型都会返回size个,总返回数最大为size乘以type类型个数。
page为返回页码,比如api会返回符合条件的视频/剧集,然后获取总数会根据size切割成多个页码,page就是返回其中一个页码
type指定返回类型,比如movie为电影,tv为剧集,图集为image,如果你想多个一起返回,则使用英文逗号分开,如type=movie,tv
category是分类,且目前仅视频/剧集支持文字参数;图集只能通过其分类ID获取。
tag标签,且目前仅支持视频/剧集
tags标签数组(英文,分开),采用智能推荐算法,即多个标签命中权限排序,标签使用得当可根据用户关注返回完全相同的内容,目前支持视频/剧集、图集。
user用户ID,返回指定用户ID上传的视频数据
q搜索,返回符号该搜索关键词的内容,且目前仅支持视频/剧集
order为排序方式,为countDesc、countAsc、createAsc和createDesc,分别为播放/浏览次数倒序、播放/浏览次数正序、创建时间正序、创建时间倒序。
#调用说明
category tag q tags user这5种参数不能一起用,只能存在一个,type page size order是公用的,都为可选参数
调用示例如下:
#返回最新的电影十个数据
/api2/getcontents?page=1&size=10&type=movie
#返回最新的电影和剧集各十个数据
/api2/getcontents?page=1&size=10&type=movie,tv
#返回恐怖片分类中的电影和剧集中最新的十个数据
/api2/getcontents?page=1&size=10&type=movie,tv&category=恐怖片
#返回标签为日本的电影和剧集中最新的十个数据
https://www.leimulamu.com/api2/getcontents?page=1&size=10&type=movie,tv&tag=日本
#根据标签日本、动漫、科幻智能推荐算法API返回视频和剧集中最靠前的十个数据
/api2/getcontents?page=1&size=10&type=movie,tv&tags=日本,动漫,科幻
#返回搜索关键词龙珠的视频和剧集中最靠前的十个数据
https://www.leimulamu.com/api2/getcontents?page=1&size=10&type=movie,tv&q=龙珠
#返回指定用户ID上传的视频数据
/api2/getcontents?page=1&size=10&type=movie,tv&user=5c5e974c17a9ef6920622b3d
#返回图集类型最新的10个数据
/api2/getcontents?page=1&size=10&type=image
返回信息如下:
#电影返回,poster2封面2信息,count播放次数,_id电影id,tags标签,category分类,previewvideo预览视频,poster封面1
[
{
"poster2": {
"url": "/videos/202008/27/5f4761b75a92e955b55052e4/poster.jpg",
"height": 814,
"width": 540
},
"count": 15000,
"tags": [
"喜剧",
"动作",
"恐怖"
],
"_id": "5f4761b75a92e955b55052e4",
"originalname": "鬼打鬼之黄金道士",
"createAt": "2021-04-27T04:49:36.708Z",
"category": "电影",
"previewvideo": "/videos/202008/27/5f4761b75a92e955b55052e4/preview.mp4",
"poster": "/videos/202008/27/5f4761b75a92e955b55052e4/cover.jpg"
}
]
#剧集返回,poster2和poster均为封面信息,_id剧集id,count播放次数,tags标签,category分类,episodes剧集信息(episode单集标题,movieid单集视频ID)
[
{
"poster2": {
"url": "/poster/5ca0de597b64b73b0111165b/poster2.jpg",
"width": 600,
"height": 888
},
"count": 27252,
"tags": [
"喜剧",
"科幻",
"动画",
"奇幻"
],
"_id": "5ca0de597b64b73b0111165b",
"title": "爱,死亡和机器人",
"episodes": [
{
"_id": "5ca0dea919cc103abac8a49a",
"episode": "01",
"movieid": "5ca052227b64b73b0111162e"
},
{
"_id": "5ca0dea919cc103abac8a499",
"episode": "02",
"movieid": "5ca052227b64b73b01111641"
}
],
"createAt": "2020-08-25T09:46:25.990Z",
"poster": "/poster/5ca0de597b64b73b0111165b/poster.jpg",
"category": "剧集"
}
]
#图集信息,poster2和poster均为封面信息,images为全部图片地址
[
{
"poster2": {
"url": "/images/5ee35ad291c8d479a076db75/poster2.jpg",
"width": 600,
"height": 1233
},
"images": [
"/images/5ee35ad291c8d479a076db75/0.jpg",
"/images/5ee35ad291c8d479a076db75/2.jpg",
],
"_id": "5ee35ad291c8d479a076db75",
"title": "水手服cosplay,清纯可爱性感",
"createAt": "2020-06-12T10:37:06.083Z",
"poster": "/images/5ee35ad291c8d479a076db75/poster.jpg"
}
]
#文章咨询信息,poster2和poster均为封面信息,content为文章内容
[
{
"poster2": {
"url": "/uploads/poster-file-1589959111721.jpg",
"width": 600,
"height": 375
},
"_id": "5d05fd3984023b28ca7996c2",
"title": "二次元文化正在俘获亿万青年,二次元与主流文化融合加速",
"content": "<p>文章内容</p>\r\n",
"createAt": "2019-06-16T08:26:33.826Z",
"poster": "/uploads/file-1589959111721.jpg"
}
]
由于考虑到api
效率问题,视频/剧集的描述返回都精简了,如有需求可联系我们单独为你加上该参数返回。
获取视频播放信息
Get /api2/getvideo/id //id为movieid即电影id
Header {'token': apiKey}
#返回信息,下面全部的域名地址由转码设置的绑定域名决定,可自行修改
{
"photos": [
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/1.gif",
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/0.jpg",
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/1.jpg",
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/2.jpg",
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/3.jpg",
"https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/4.jpg"
],
"m3u8": "https://videos.efvcms.com/videos/60e013d3bbf8db7bf9d747df/20000/index.m3u8",
"id": "60e013d3bbf8db7bf9d747df",
"count": 105,
"title": "明日之战",
"summary": "克里斯·帕拉特商谈主演科幻影片[幽灵征募](Ghost Draft,暂译),克里斯·麦凯([乐高大电影])执导,扎克·迪恩([陷阱])操刀剧本。故事讲述一对父子被征募到一场未来战争中,这场战争决定着人...",
"category": "美剧",
"likes": [
{
"count": 16321,
"_id": "60068fa654a23c201cd0855b",
"originalname": "许嵩 - 断桥残雪",
"poster": "https://efv.zhuanma.co/videos/202101/19/60068fa654a23c201cd0855b/cover.jpg"
}
]
}
#参数说明
photos 为截图信息
m3u8 为m3u8链接
count 为视频播放次数
summary 为视频描述
likes 为推荐列表,根据标签推荐相似的视频
category 为视频分类
播放页获取视频信息
#id为视频id
Get /api2/getplay?type=movie|tv&id=id
Header {'token': apiKey}
response {
movie,
success,
tv, //如果type是tv才会有此返回,返回视频所属剧集详细信息。
photos
}
搜索视频
Get /api2/getcontents?q=keywords&page=page&size=size&type=movie,tv
response {
movies //视频列表
}
热门视频
Get /api2/gethots
response {
movies
}
返回日期分类的周、月、年热门视频
Get /api2/gethotsbydate
response {
allhotmovies,
monthhotmovies,
yearhotmovies,
weekhotmovies,
host,
}
获取随机视频,剧集列表
Get /api2/getrandom
Header {'token': apiKey}
response {
movies,
host
}
获取图集列表
Get /api2/getimages?count=12&page=1
response {
host,
images,
pages
}
获取图集漫画详情
Get /api2/getimage?id=id
response {
host,
image
}
获取视频下载价格
Get /api2/getdownloadprice?token=token&id=id
response {
success: 0|1|2
path //如果已经购买,并且在时限内则直接返回下载链接
price //未购买或过期返回积分购买下载权限价格
}
积分购买下载权限
Get /api2/appdownload?token=token&id=id
response {
success 0|1,
message,
path
}
获取全局导航信息和前端相关设置
Get /api2/getnav
response {
categories,
globaltags,
portal
}
根据登录token,判断是否过期或者失效
Post /api2/checkauth
data {
token
}
response {
auth: true|false,
user
}
获取标签列表,标签分组及全部分类
Get /api2/gettags
response {
tags,
categories,
taggroups
}
API注册接口
Post /api2/postregister
data {
username,
email,
password
}
response {
success: 0|1,
message,
token,
user
}
API登录接口
Post /api2/postlogin
data {
email,
password
}
response {
success: 0|1,
token,
user,
userfollow //用户关注的标签,用于智能推荐算法推荐相关关注内容
}
签到接口
Post /api2/checkin
data {
token
}
response {
success,
message
}
获取付费用户组接口
Get /api2/getvipgroups
response {
success:1,
vipgroups
}
获取VIP用户组的价格
Get /api2/getjiage?group=groupid&duration=30
response {
score,
price
}
使用积分购买VIP用户组接口
Post /api2/scorebuyvip
data {
token,
vipgroup,
duration
}
response {
success: 1|0,
message
}
API直接使用支付接口购买VIP用户组
Post /api2/directbuyvip
data {
group,
duration,
token
}
response {
success,
message,
id //订单ID,用于跳转订单页面进行支付
}
获取订单详情API
Get /api2/getitem?id=id
response {
success: 1,
item,
pay
}
API发起码支付
Post /api2/codepay
data {
id
}
response {
success,
url, //支付页面链接
message
}
获取用户信息
Get /api2/getuser?id=id
response {
success: 1|0 ,
user
}
API发起购买积分
Post /api2/buyscore
data {
token,
score
}
response {
success: 1|0,
id, //订单ID
message
}
使用卡劵的API接口
Post /api2/usecard
data {
card,
token
}
response {
success,
message
}
获取视频m3u8信息
#type参数,320为240P、480为360P、640为480P、1138为640P、1280为720P、1920为1080P、2560为2K、20000为原画320为240P、480为360P、640为480P、1138为640P、1280为720P、1920为1080P、2560为2K、20000为原画
Get /api2/getm3u8?type=320&id=id&token=token
response {
success: 1|0|2,
message,
hd, //返回分辨率
m3u8
}
API积分点播视频
Post /api2/buymovie
data {
id,
token
}
response {
success,
message
}
切换用户关注标签的接口,若关注则取关,若没关注则关注
Post /api2/toggleuserfollow
data {
tag,
token
}
response {
success,
message
}
此套接口做了严格的数据检验,所以可放心使用,包含了从数据展示,获取,到购买,支付接口,积分购买,下载,积分点播等所有方方面面,可自行测试。