永久免费 · 无需注册 · 完全兼容苹果 CMS V10
把以下 URL 复制到你的 CMS 自定义接口即可,无需注册、无需 key:
98m3u898m3u8。
特点:
vod_play_from / vod_play_url —— 播放地址开箱可用h=24 参数 —— 每小时增量采集不重复以下步骤适用于苹果 CMS V10 / 海洋 CMS / 飞飞 CMS:
98m3u8 的播放器,解析方式选 直接播放。
http://你的CMS域名/index.php?m=api&c=collect&ac=day&t=你的接口ID
建议每 2 小时执行一次,和我们 4 小时的扫源节奏刚好匹配。
&h=24 参数只拉最近 24 小时:https://bwzy.tv/api.php/provide/vod/at/json/?ac=list&h=24
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
ac | string | 动作:list 列表 / detail 详情 / videolist 同 list | list |
pg | int | 页码(从 1 开始) | 1 |
t | int | 分类 ID(调 /v2/types 可查全部分类 ID) | 1(电影) |
h | int | 只返回最近 N 小时内更新的资源(增量采集关键参数) | 24 |
wd | string | 关键词搜索(匹配名称/演员/导演) | 庆余年 |
ids | string | 指定 ID 列表(带 ids 自动返回详情含 play_url) | 1,2,3 |
?ids=xx,无论 ac 是 list、videolist、detail,都会自动返回详情(含 play_url)。
这是为了兼容不同 CMS 版本的采集惯例。
针对现代开发者(非 CMS 场景),字段结构化,支持增量同步、批量查询、结构化分页:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v2/vod | 影视列表(支持 type_id/area/year/score_min/sort) |
| GET | /v2/vod/{id} | 影视详情(含完整播放源) |
| GET | /v2/vod/batch?ids=1,2,3 | 批量获取 |
| GET | /v2/search?q=xxx | 全字段搜索 |
| GET | /v2/sync?since=2026-04-21T15:00:00Z | 增量同步(杀手级) |
| GET | /v2/types | 分类列表(获取所有 type_id) |
| GET | /v2/status | 服务状态 / 版本号 / 资源总量 |
| GET | /v2/stats | 当前 IP 的限流使用情况 |
# 最新 20 条
curl 'https://bwzy.tv/api.php/provide/vod/?ac=list&pg=1'
# 最近 24 小时更新(增量采集)
curl 'https://bwzy.tv/api.php/provide/vod/?ac=list&h=24'
# 搜索"庆余年"
curl 'https://bwzy.tv/api.php/provide/vod/?ac=list&wd=庆余年'
# 拿详情(带 ids 自动路由到 detail)
curl 'https://bwzy.tv/api.php/provide/vod/?ids=1,2,3'
# V2 REST
curl 'https://bwzy.tv/v2/vod?page=1&per_page=20&type_id=26'
curl 'https://bwzy.tv/v2/sync?since=2026-04-21T00:00:00Z'
import requests
# 增量采集:最近 1 小时更新的资源
r = requests.get("https://bwzy.tv/api.php/provide/vod/", params={
"ac": "list",
"h": 1,
"pg": 1,
})
data = r.json()
print(f"共 {data['total']} 条,本页 {len(data['list'])} 条")
for v in data['list']:
print(v['vod_id'], v['vod_name'], v.get('vod_play_from'))
# 批量拿详情
r = requests.get("https://bwzy.tv/api.php/provide/vod/", params={
"ids": "1,2,3,4,5"
})
for v in r.json()['list']:
print(v['vod_name'], v['vod_play_url'][:80])
<?php
$url = "https://bwzy.tv/api.php/provide/vod/?ac=list&h=24&pg=1";
$raw = file_get_contents($url);
$data = json_decode($raw, true);
foreach ($data['list'] as $vod) {
echo $vod['vod_name'] . " [" . $vod['vod_play_from'] . "]\n";
// 入库逻辑...
}
?>
| 维度 | 上限 |
|---|---|
| 每秒 | 10 次 |
| 每分钟 | 300 次 |
| 每小时 | 5,000 次 |
| 每日 | 50,000 次 |
超过会返回 HTTP 429。增量采集(h=24)一天最多几百次调用,不可能触到上限。
| Code | 含义 |
|---|---|
200 + code:1 | 成功(MacCMS 兼容) |
200 + code:0 | V2 成功 |
| 400 | 参数错误(如 detail 没带 ids) |
| 404 | 资源不存在 |
| 429 | 触发限流,稍后重试 |
| 500 | 服务端错误,联系管理员 |
98m3u8 的播放器,解析方式选「直接播放」或「解析 m3u8」。绑定资源时 flag 也要是 98m3u8。ac=list 或 ac=detail(带 ids)。list 会返回 vod_play_from(源标识),detail 会额外返回 vod_play_url(完整播放地址)。https://bwzy.tv/api.php/provide/vod/?ac=list,响应里的 class 数组包含所有分类 ID 和名称。或者更清爽地:https://bwzy.tv/v2/types。h=4 增量采集一次,错开峰值。https://bwzy.tv/v2/status 状态。仍异常请加 Telegram 群反馈(页脚有链接)。