视频设置与媒体库
视频放在哪里(Bunny/Cloudflare Stream/YouTube/Vimeo)、防盗录水印怎么设,以及图片与文件的媒体库用法。
视频是课程网站最贵、也最怕外流的资产。这页讲两件事:视频放哪里(设置 → 视频设置),以及图片与文件放哪里(网站内容 → 媒体库)。
视频的四种来源
每个单元都可以各自选来源,同一门课混用也没问题。
| 来源 | 适合谁 | 保护程度 |
|---|---|---|
| Bunny(上传视频文件) | 正式贩售的付费课程 | 最好。视频绑你的域名,只能在你的站内播 |
| YouTube(粘贴网址) | 免费课、试看、预告 | 低。列为「不公开」也挡不住有人拿到网址就转传 |
| Vimeo(粘贴网址) | 已经有 Vimeo 的人 | 免费版低、Plus/Pro 以上可锁域名 |
| Cloudflare Stream(上传视频文件) | 正式贩售、又要观看时数统计的课程 | 最好。打开「签章网址防盗」后,网址被拷贝出去 6 小时内就失效 |
只卖一两堂课、学费不高的话,YouTube「不公开」其实够用。真正要防的是「整套课被打包转卖」——那就一定要用 Bunny。
设置 Bunny(上传视频必做)
Bunny 是你自己的账户,视频费用直接付给 Bunny,平台不经手也不加价。以下五步请照顺序做完,第 5 步是验收,不要跳过。
第 1 步|创建视频库
到 bunny.net 注册 → 左侧选 Stream → Add Video Library。
创建时会问要复写到哪些地区(Replication regions):亚洲学员请勾 Singapore/Tokyo/Hong Kong。没勾亚洲节点,等于每次播放都要跨洋拉档,学员会觉得视频一直转圈。
第 2 步|把两个值填进「设置 → 视频设置」
进入该视频库 → API 分页,抄下两个值,再回到后台左侧菜单「设置 → 视频设置」粘贴:

| Bunny 上的名称 | 填进我们的哪一栏 | 长什么样 |
|---|---|---|
| Video Library ID | Library ID(视频库 ID) | 一串数字,例如 `123456` |
| API Key | API Key(Stream 视频库的密钥) | 一长串英数字 |
Library ID 只收数字。 它是视频库的数字编号——不是你的 Email,也不是视频库的名称。贴了其他东西,字段会变红、不让你保存。这是刻意的:这格填错不会马上出事,要等到哪天真的上传视频才失败,而 Bunny 回的错误消息也不会告诉你原因。
关于 API Key 这一格:密钥存好之后,我们不会再把它传回你的浏览器,所以字段旁会显示「已设置」、输入框则是空的。留空=沿用原本的密钥,只有要换新密钥时才需要贴。要整个清掉,按字段旁的「移除」。(支付与电子发票的凭证也是同样的做法。)
第 3 步|Security 分页(最容易设错的一页)
其中有两项设错,视频在本平台就会完全播不出来。而且 Bunny 不会给你任何有用的错误消息——视频就是一直不开始。
| 设置项目 | 要设成 | 设错会怎样 |
|---|---|---|
| Allowed Referrers | 填上你的域名——自定义域名与 `你的子域名.平台域名` 两个都要填 | 留空=任何人都能把你的视频嵌到自己站上;填错=连你自己的站都播不出来 |
| Block direct URL file access | 开启(建议) | 关闭的话,任何人拿到源文件网址都能直接看。打开对我们没有副作用:我们的播放器是用嵌入的方式播你的视频,一定会带上来源网址 |
| Embed view token authentication | 关闭——必须 | 🚨 打开后,嵌入必须带签章 token 才载得出来。本平台不签 Bunny 的 token,所有视频都会变成一片空白 |
| CDN token authentication | 关闭——必须 | 同上 |
| MediaCage Basic DRM | 自己决定——见下方说明 | 打开:防下载的保护最强。关闭:在本平台得不到任何好处,因为不管开不开,观看时数都统计不到 |
关于 DRM,以及它的代价
MediaCage Basic 是免费的,会在发送时把视频档加密,让人没办法直接下载。Bunny 自己也讲得很清楚它的代价:打开后,视频只能在 Bunny 自己的嵌入播放器里播放,MP4 Fallback 也会被禁用。
对你的影响是:本平台统计不到 Bunny 视频的观看比例。我们没办法挂上自己的播放器,而 Bunny 的嵌入播放器也不会把播放进度回报给我们。我们把 DRM 关掉实测过——结果一样,所以在本平台关掉 DRM 换不到任何东西。需要观看比例的话,那几门课请改放 Vimeo;需要最强的防转卖保护,就开着 DRM,并接受那些单元统计不到。
第 4 步|Encoding 分页(这页决定你每月付多少)
- Resolutions:勾 360p/480p/720p/1080p 就够。2160p(4K)不要开——转档费与流量费都贵上好几倍,在线课程根本用不到
- Keep original files:关闭。源文件留着会一直算你保存费
- MP4 Fallback:关闭。开了等于多给一个可以直接下载整支视频的网址,防盗录就破功了。(开了 DRM 的话,Bunny 本来就会帮你关掉)想让学员开车时用听的,请改在单元上传音频档,见「听课模式(纯音频)」
第 5 步|确认真的生效(每次改完设置都要做一次)
随便找一个单元上传一支短的测试视频,然后用站长账号打开那个单元、按播放。
如果画面一直出不来,原因几乎都在第 3 步的 Security 分页——Allowed Referrers 没填你的域名,或两个 token authentication 开关有一个还开着。这两种状况 Bunny 都不会给你有用的错误消息,视频就是不开始。
设置完成后,在单元里选「Bunny(上传视频文件)」就能直接上传,系统会自动转档、产生缩略图,并把视频长度带进单元。转档期间可以先做别的事,不用守着。
已经上传过的视频,可在单元的视频选择器切到「选择现有视频」直接挑,不必重传。
想统计「学员到底看了几成」要什么条件
课程设置里的「激活观看比例管制」会告诉你学员实际看了这门课的几成,让你处理退款申请时有事实可依,而不是用猜的。它从不替你做决定——不会自动核准或拒绝任何退款;你设的门槛百分比只决定学员数据页上的数字什么时候变红。要让这个数字有意义,必须同时符合两个条件:
- 每个单元都有视频长度(上传的视频会自动带入)
- 每个单元的视频来源都统计得到。各来源的能力如下:
| 来源 | 观看比例 | 说明 |
|---|---|---|
| Vimeo | ✅ 统计得到 | 请把视频的隐私设置改成「只允许嵌入在你自己的域名」,数字才会反映学员在你网站上看了多少 |
| YouTube | ✅ 统计得到,但有前提 | 我们算的是学员在你网站上看了多少。同一支视频在 YouTube 上也看得到,所以实际观看量可能比你看到的高——误差永远是对学员有利,不会对学员不利 |
| Bunny(上传视频文件) | ❌ 统计不到 | 开了 DRM 之后,Bunny 视频只能用 Bunny 自己的播放器播放,而它不会把播放进度回报给我们 |
| Cloudflare Stream(上传视频文件) | ✅ 统计得到,也可当上课时数证明 | 用的是本站自己的播放器,学员只能在你的网站上看(开签章网址防盗后,外流的网址会过期) |
依需求挑来源:Bunny 防转卖的保护最强;Vimeo 与 YouTube 看得到观看比例。学员数据页会列出是哪几个单元让比例算不出来。
任一条件不成立,学员数据页不会给你一个似是而非的数字,而是直接说「无法判定」并列出是哪几个单元卡住。这是刻意的:拿一个不完整的百分比去拒绝退款,比不给还糟。
计算方式是「实际看过的秒数 ÷ 该课程所有单元的视频总时长」——快转略过的段落不算,同一段重看十次也只算一次。
设置 Cloudflare Stream(另一种上传选择)
Cloudflare Stream 跟 Bunny 一样是你自己的账户,费用由 Cloudflare 直接向你收(按视频分钟数计费),平台不经手也不加价。两家可以都设,每个单元各自选。
和 Bunny 最大的差别:Cloudflare 的视频用的是本站自己的播放器,所以统计得到观看比例与上课时数;还可以开「签章网址防盗」——学员按播放时,系统确认他有权看这个单元,才发一组 6 小时内有效的网址。
设置步骤(设置 → 视频设置 → Cloudflare Stream):
- 登录 dash.cloudflare.com → 左侧菜单 Stream → 依画面开通 Stream 方案。
- Account ID:登录后网址列 `dash.cloudflare.com/` 后面那 32 码英数字,整串拷贝贴到「Account ID」。
- API 权杖:右上角头像 → My Profile → API Tokens → Create Token → 最下方 Create Custom Token,逐栏填:
| 字段 | 填什么 |
|---|---|
| Token name | 随意,例如「课程网站视频」 |
| Permissions | 三格依序选 Account、Stream、Edit |
| Account Resources | Include + 选你的账号 |
| 其他字段(Client IP Address Filtering、TTL) | 留空 |
- 按 Continue to summary → Create Token,把权杖贴到「API 权杖」(权杖只会显示这一次)。
- 视需要勾选「签章网址防盗」,按 验证并保存。系统会立刻向 Cloudflare 测试,填错会直接显示原因。

设置好之后,在单元里选「Cloudflare Stream(上传视频文件)」:可以直接上传,也可以从视频库挑一支已经传过的。转档完成会显示缩略图,视频长度自动带进单元。
6. 验收(设好一定要做一次):随便找一个单元,视频来源选「Cloudflare Stream(上传视频文件)」上传一支短片,等缩略图出现后,用站长账号打开那个单元按播放。播得出来就完成了。
按「验证并保存」出现错误时,看错误消息里的关键字:
| 消息里看到 | 原因 | 怎么修 |
|---|---|---|
| Authentication error(10000) | 权杖权限不对 | 重建权杖,Permissions 一定要是 Account → Stream → Edit(选 Read 存得进去,但上传会失败) |
| Could not route(7003)、7000 | Account ID 填错 | 重新拷贝网址列 `dash.cloudflare.com/` 后面那 32 码 |
| 权杖刚建好还是验证失败 | Account Resources 没选到这个账号 | 编辑权杖,Account Resources 改成 Include + 你的账号 |
| 提到 subscription 或 plan | Stream 还没开通 | 回第 1 步,在 Stream 页面开通方案 |
开了「签章网址防盗」之后,Cloudflare 视频只能用在课程单元与课程介绍视频。页面的视频区块与仿真直播没有「谁有权看」可以判断,请改用没开签章的视频,或 YouTube/Vimeo。
动态浮水印(防盗录)
勾选「课程视频套用本系统播放器并显示动态浮水印」后,播放画面上会叠一段小字,每隔几秒换一个角落,全屏幕也跟着。
- 要显示什么:Email、姓名、手机、学员编号、网站名称、课程名称、观看时间——自由勾选,取不到值的字段会自动略过那一行
- 自定义文字:可以插入变量,例如 `{name} 专用 · 禁止外流`
- 文字明显度:越高越难去除,但也越干扰观看。多数人设 30–50% 就够
- 换位间隔:每几秒跳到下一个角落。设太长容易被裁掉,建议 10 秒内
- 下方有实时预览,不用真的开一支视频来试

改完记得按下方的「保存设置」。
它的用途是吓阻与追查:视频真的外流时,画面上就写着是哪个账号流出去的。
⚠️ 两个要知道的副作用:
- 为了让全屏幕也有浮水印,Vimeo/YouTube 视频会改用本系统的全屏幕按钮(禁用它们原生的)
- 未登录的访客没有 Email/姓名/手机/学员编号,所以只会看到「网站名称/课程名称/观看时间」这三项;三项都没勾的话,试看的访客就完全没有浮水印
YouTube 视频要不要藏品牌
另一个独立选项:「启用自制播放器覆盖 YouTube 视频的链接」。勾了之后 YouTube 视频改用自制播放器播放,隐藏 YouTube 标志,源代码里也看不到视频链接。取消勾选则是标准 YouTube 嵌入(会显示 YouTube 品牌与「在 YouTube 上观看」)。
媒体库:图片与文件
「网站内容 → 媒体库」是全站共用的文件柜:课程封面、文章配图、页面素材、可下载的讲义都放这里。

- 支持格式:图片、PDF、Word、Excel、PowerPoint、zip、txt、csv
- 上传时去背:勾了之后白底会变透明,适合 Logo 与商品去背图
- 自动压缩:图片上传时会自动压成 WebP,不必自己转档
- 复制网址:每个文件都可以拿到直接网址,贴到文章或页面里都行
- 从旧网站抓图:粘贴旧站网址,把那一页的图片整批抓进媒体库,不必一张张另存再上传
- 清理没在用的文件:列出没有被任何课程/文章/页面引用的文件,确认后再删
两个省时间的功能
复制全部图片网址给 AI:按右上「选取」勾出这次要用的图 → 「复制选中的网址给 AI」,贴到 ChatGPT/Claude 请它帮你排一页版面时,它就知道有哪些图可用。
压缩省容量:从旧站搬过来的大图常常一张好几 MB。勾选后按「🗜 压缩省容量」会重压成 WebP,网址不变——已经插在文章里的图不会坏掉。

容量上限
后台总览页上方有一条容量进度条,显示「已用 / 上限」。快满的时候会转黄、超过会转红。做法有两个:先用「压缩省容量」清一轮,还是不够再加购(每单位 5GB)。
常见问题
视频费用是谁付? Bunny 是你自己的账户,直接付给 Bunny。平台不抽成也不加价。
已经上传到 YouTube 了,还要重传到 Bunny 吗? 不用。单元可以直接贴 YouTube 网址。等到课程卖得起来、需要更强的保护时再搬。
浮水印会不会影响观看体验? 会一点,这是刻意的。把明显度调到 30% 左右,看得到但不挡内容,通常是可接受的平衡点。
删掉媒体库的图片,文章里的图会坏掉吗? 会。删除前先确认没有页面在用它——网址是直接指向该文件的。
视频可以下载吗? 播放器没有下载按钮。但任何在浏览器播得出来的视频,技术上都有办法被录下来——这就是浮水印存在的理由。
播放器左上角出现 🟡「已退回内置播放器」,视频明明播得出来,要紧吗? 不要紧。Bunny 视频现在一律用 Bunny 内置的播放器播放,这个标签只是告诉你目前看到的是哪一种播放器。用它播放时统计不到观看时数——见上方「想统计『学员到底看了几成』要什么条件」。
学员数据页显示「无法判定观看比例」是什么意思? 该课程里有系统统计不到的单元:某些单元还没有视频长度,或视频是在 Bunny 内置播放器里播放(它不会把播放进度回报给我们)。消息里会列出是哪几个单元卡住。
我改了退款门槛的百分比,之前的学员会被追溯吗? 会用新的百分比去比对,但观看纪录只从你勾选激活的那一刻起才开始累积。没激活时系统完全不记录,所以不会有历史数据可以回溯。要用这个机制,请在开卖前就设置好。
