> 来源：https://mac-cms.com/cms/cms-collect
> 简介：MacCMS（苹果CMS）后台采集教程，详解分类编辑、添加资源站、分类映射绑定、采集所有与定时采集。配合空壳影视实现影视点播数据自动更新。采集没数据怎么查也有说明。
> 更新：2026-11-02

# MacCMS后台配置 采集教程

上篇文章介绍了如何安装MacCMS,本文介绍如何配置后台及定时采集。

## 配置后台影视分类

进入后台,点击上方的"基础",进入分类编辑页面。
![MacCMS后台分类](/static/maccms/201.webp)

## 找资源站

通过搜索引擎找到资源站,或通过[资源分享](/cms/cms-share)获取

## 添加采集

![MacCMS后台采集](/static/maccms/202.webp)
> 点击添加按钮，打开下方界面，填写资源站信息。

![MacCMS后台采集](/static/maccms/203.webp)

> 添加好后，点击下方图示的链接区域，进入采集页面，绑定分类，将采集站的分类映射到你的分类上。

![MacCMS后台采集](/static/maccms/204.webp)
![MacCMS后台采集](/static/maccms/205.webp)

::: tip 提示
不想采集的分类，不绑定即可。  
如上方图示，伦理片没绑定，即表示不采集伦理片这个分类的所有影视数据。  
**推荐绑定采集所有分类，然后通过空壳影视的隐私模式，默认屏蔽不直接显示的分类。**
:::

## 开始采集

> 绑定好分类后，关闭页面，重新打开“自定义接口”页面。  
> 第一次添加，点击添加的资源站后面的“采集所有”，会有些慢。  
> 之后只采集当天就比较快了。

![MacCMS后台采集](/static/maccms/206.webp)

## 定时采集

> 采集完所有的影视后，就可以设置定时采集了。   
> 每次只采集当天的影视。两三个小时采集一次当天，比较实时了。

1. 鼠标放在上图的“**采集当天**”上，点右键，复制链接。  
   会得到类似这样的链接：

```
https://www.xxx.com/admin.php/admin/collect/api.html?ac=cj&cjflag=240e5d81e22333f0ce6cf1d&cjurl=https%3A%2F%2Fbfzyapi.com%2Fapi.php%2Fprovide%2Fvod%2F&h=24&t=&ids=&wd=&type=2&mid=1&opt=0&sync_pic_opt=0&filter=0&filter_from=&filter_year=&param=
```

2. **添加定时任务**  
   ![MacCMS定时采集](/static/maccms/207.webp)
   ![MacCMS后台定时采集](/static/maccms/208.webp)

> **名称**最好填写英文  
> **附加参数**是我们刚复制的链接的?问号后面的所有内容，如：  
>  ac=cj&cjflag=240e5d81e22333f0ce6cf1d&cjurl=https%3A%2F%2Fbfzyapi.com%2Fapi.php%2Fprovide%2Fvod%2F&h=24&t=&ids=&wd=&type=2&mid=1&opt=0&sync_pic_opt=0&filter=0&filter_from=&filter_year=&param=

3. **执行定时任务**  
   添加好后，点击测试，就可以看到采集结果了。  
   ![MacCMS定时采集](/static/maccms/209.webp)

4. **定时运行定时任务**  
   将测试的链接复制，去宝塔面板或其它面板里添加一个定时访问该链接，运行即可。
   ![MacCMS定时采集](/static/maccms/210.webp)
   ![MacCMS定时采集](/static/maccms/211.webp)

## 采集链接参数说明

上面复制到的采集链接走的是后台采集入口 `admin.php/admin/collect/api.html`（源码里对应 `app\admin\controller\Collect::api()`），参数由后台自动生成，一般不用手改。了解每个参数的含义有助于排查采集问题：

| 参数 | 说明 |
|------|------|
| ac | 固定 `cj`，表示执行采集 |
| cjurl | 被采资源站的接口地址，就是对方的 `/api.php/provide/vod/`（URL 编码后放进链接） |
| cjflag | **`cjurl` 的 md5 校验值**，由后台自动算好，`cjflag != md5(cjurl)` 时源码直接返回错误码 9001，**不要手改** |
| mid | 采集的内容类型，取值见下表 |
| h | 只采最近 N 小时更新的内容（如 `h=24` 采当天） |
| t / ids / wd | 分类、指定 ID、关键词等筛选项 |
| param | **base64 编码的附加查询串**，采集时会 `base64_decode` 后拼到请求里，正常留空即可 |
| opt / sync_pic_opt / filter 等 | 覆盖选项、是否同步图片、过滤设置等 |

### mid 取值表

`api()` 按 `mid` 把采集分发到不同处理逻辑：

| mid | 采集内容 |
|------|----------|
| 空 或 `1` | 视频（最常用） |
| `2` | 文章 |
| `8` | 演员 |
| `9` | 角色 |
| `11` | 网址 |
| `12` | 漫画 |

示例链接里的 `mid=1` 就是采集视频。

::: tip cjflag 和 param 不用手动算
`cjflag`、`param` 都是后台生成链接时自动处理好的：`cjflag` 是 `cjurl` 的 md5，`param` 是 base64 编码串。直接整条复制使用即可，手改 `cjurl` 却不同步改 `cjflag` 会导致校验失败（9001）。
:::

::: warning 采集地址不能填内网
源码的 `checkCjUrl()` 做了 SSRF 防护：会拒绝 `host` 为空或指向 `127.0.0.1` / `localhost` 的 `cjurl`。所以采集地址必须是对方资源站的公网接口，填内网地址会被直接挡下。
:::
