Skip to content

视频 API 接口参考

1. 基础地址

服务基础地址
视频数据https://cik.netlify.app
资源代理https://deploy-3wi.pages.dev

2. JSON 响应格式

视频源、视频列表和视频详情接口返回 JSON。

2.1 成功响应

json
{
  "code": 0,
  "data": {},
  "msg": "成功"
}
字段类型说明
code0请求成功
data`objectarray`
msgstring提示信息

2.2 失败响应

json
{
  "code": -1,
  "data": null,
  "msg": "失败"
}
字段类型说明
code-1请求失败
datanull无数据
msgstring错误信息

业务失败时 HTTP 状态码仍可能为 200,使用时应检查 code

3. 获取视频源

http
GET https://cik.netlify.app/api/video/source

3.1 请求参数

无。

3.2 data

data 为视频源数组。

字段类型必填说明
keystring视频源唯一标识,供其他接口的 api 参数使用
namestring视频源名称
ratingnumber视频源评分
apistring视频源的原始采集地址
groupstring视频源分组,常见值为 normal18+
dataSourcestring数据源文件路径
searchDisableboolean搜索禁用标记

3.3 响应示例

json
{
  "code": 0,
  "data": [
    {
      "key": "a",
      "name": "电影天堂资源",
      "rating": 4.5,
      "api": "https://example.com/api.php/provide/vod/at/xml",
      "dataSource": "/data/video/example.json",
      "searchDisable": true,
      "group": "normal"
    },
    {
      "key": "h",
      "name": "示例视频源",
      "rating": 4.2,
      "api": "https://example.org/api.php/provide/vod/at/xml",
      "group": "normal"
    }
  ],
  "msg": "成功"
}

4. 获取视频列表

http
GET https://cik.netlify.app/api/video/list

4.1 查询参数

参数类型必填默认值说明
apistring视频源 key
sstring空字符串搜索关键词
t`stringnumber`不筛选
p`stringnumber`1

请求示例:

http
GET https://cik.netlify.app/api/video/list?api=a&s=示例&p=1

t 仅对当前 api 对应的视频源有效。不同视频源的类型 ID 不通用,应使用当前响应中的 types

4.2 data

字段类型可能缺少说明
pagePageInfo分页信息
videoVideoListItem[]视频列表
typesVideoType[]当前视频源的类型列表
namestring当前视频源名称
sstring实际采用的搜索关键词
type`numbernull`
preferboolean是否属于特殊视频源分组
searchDisableboolean搜索禁用标记

部分视频源异常时可能返回 code: 0,但缺少 pagevideotypes

4.3 PageInfo

字段类型说明
pagenumber当前页码
pagecountnumber总页数
pagesizenumber每页记录数
recordcountnumber总记录数

4.4 VideoListItem

字段类型说明
idnumber当前视频源内的视频 ID
namestring视频名称
notestring更新状态、集数或清晰度
laststring最后更新时间,格式由视频源决定
dtstring播放线路标识,可能由逗号分隔
tidnumber视频类型 ID
typestring视频类型名称

4.5 VideoType

字段类型说明
tid`stringnumber`
tnamestring类型名称

4.6 响应示例

json
{
  "code": 0,
  "data": {
    "page": {
      "page": 1,
      "pagecount": 1,
      "pagesize": 20,
      "recordcount": 1
    },
    "video": [
      {
        "last": "2025-08-28 17:27:47",
        "id": 61772,
        "tid": 7,
        "name": "示例视频",
        "type": "喜剧片",
        "dt": "source,source-m3u8",
        "note": "HD国语"
      }
    ],
    "types": [
      {
        "tid": "7",
        "tname": "喜剧片"
      }
    ],
    "name": "电影天堂资源",
    "s": "示例",
    "type": null,
    "prefer": false,
    "searchDisable": true
  },
  "msg": "成功"
}

5. 获取视频详情

http
GET https://cik.netlify.app/api/video/{api}/{id}

5.1 路径参数

参数类型必填说明
apistring视频源 key
id`stringnumber`

请求示例:

http
GET https://cik.netlify.app/api/video/a/13032

5.2 data

字段类型必填说明
laststring最后更新时间,格式由视频源决定
idnumber视频 ID
tidnumber视频类型 ID
namestring视频名称
typestring视频类型名称
picstring封面图片 URL
subnamestring副标题或别名
langstring语言,可能为空字符串
areastring地区
year`stringnumber`
state`stringnumber`
notestring更新状态、集数或清晰度
actorstring演员列表
directorstring导演
desstring视频简介,可能包含 HTML 标签和实体
dataListVideoSource[]播放线路列表
preferboolean是否属于特殊视频源分组
proxyboolean是否需要使用代理播放页

5.3 VideoSource

字段类型说明
namestring播放线路标识,例如 dyttm3u8dytt;名称由视频源定义
urlsVideoItem[]该线路下的播放项

5.4 VideoItem

字段类型说明
labelstring集数、清晰度或播放项名称
urlstring播放目标地址,可能是 .m3u8.mp4.webm 等媒体直链,也可能是包含实际媒体地址的播放网页

5.5 响应示例

json
{
  "code": 0,
  "data": {
    "last": "2025-02-26 12:19:28",
    "id": 13032,
    "tid": 11,
    "name": "示例电影",
    "type": "剧情片",
    "pic": "https://example.com/poster.jpg",
    "subname": "Example Movie",
    "lang": "英语",
    "area": "美国",
    "year": 2014,
    "state": "",
    "note": "HD中字",
    "actor": "演员 A,演员 B",
    "director": "导演 A",
    "des": "<p>视频简介</p>",
    "dataList": [
      {
        "name": "dyttm3u8",
        "urls": [
          {
            "label": "HD中字",
            "url": "https://example.com/video/index.m3u8"
          }
        ]
      },
      {
        "name": "dytt",
        "urls": [
          {
            "label": "HD中字",
            "url": "https://example.com/share/video-id"
          }
        ]
      }
    ],
    "prefer": false,
    "proxy": false
  },
  "msg": "成功"
}

6. 资源代理

http
GET https://deploy-3wi.pages.dev/api/proxy?url={targetUrl}

6.1 查询参数

参数类型必填说明
urlstring经过 URL 编码的目标资源地址

请求示例:

http
GET https://deploy-3wi.pages.dev/api/proxy?url=https%3A%2F%2Fexample.com%2Fvideo

6.2 响应

返回目标地址的原始响应内容,不使用 JSON 响应格式。内容可能是 HTML、图片、音频或视频。

7. 注意事项

  • 视频 id 只在所属视频源内有效,存储、缓存或构造详情请求时应同时保留 apiid
  • 不同视频源的 tid 含义不同,不能跨视频源复用。
  • types[].tid 可能是字符串或数字。
  • dt 是播放线路标识,不是日期;其中的名称通常对应详情的 dataList[].name,最终应以详情响应为准,不能仅根据名称后缀判断 URL 类型。
  • last 的格式由视频源决定,可能同时包含日期和时间。
  • yearstate 的类型可能随视频源变化。
  • subnameareaactordirector 可能缺少。
  • des 可能包含第三方提供的 HTML,展示前应进行可信标签过滤或转义,不能直接作为未清洗的 HTML 插入页面。
  • dataList 可以同时包含同一播放项的媒体直链线路和网页线路,不同线路通常通过相同的 label 对应。
  • dataList[].urls[].url 不是固定格式,不能假定它一定以 .m3u8 结尾。
  • m3u8 地址可能返回主播放列表或媒体播放列表。主播放列表可以引用一个或多个不同码率、分辨率的子播放列表;能否选择清晰度取决于实际变体数量和播放器能力。
  • 播放地址中的查询参数可能用于签名或有效期校验,应原样保留,不能统一删除。
  • 播放网页通常会在页面内部继续加载实际媒体资源,常见格式是 m3u8,也可能是 MP4、WebM 或动态生成的地址。
  • 详情接口只返回视频源提供的原始播放目标,不保证返回可直接交给媒体播放器的最终资源地址。网页地址可以直接在浏览器中打开;其他客户端若需要媒体直链,需要自行解析网页。
  • 图片、播放网页和媒体资源可能受跨域策略或 HTTP 混合内容限制;浏览器无法直接加载时,可按需使用资源代理接口。
  • JSON 接口与资源代理接口的响应格式不同。

世界很美 而你正好有空