海外擦边短剧 PWA · 技术与视频云架构手册
给合伙人拍板用的独立材料:从 0 到可播可充可运营的系统分层、开源能拼什么、视频云怎么选、前台后台模块、容易漏的清单、结合 AI Coding 的人力与一个月排期。支付只留工程对接位;不写斗篷、假下载、盗版操作。
FACT 公开可核
CLAIM 决策判断
UNVERIFIED 未亲核
主荐 Bunny Volume
MVP ≠ 大规模买量
00总览结论(先读这页就能拍板)
一句话:没有开源整站短剧运营系统;自己薄做业务层(锁集、账本、CMS、PWA),重的采购视频云。视频云主荐 Bunny Stream Volume(成人友好 + 放量便宜);Mux 只适合极小团队换省开发,擦边主片库有政策风险。
一个月:能做出「可播 + 可充 + 可运营入库」的 MVP;做不到高可用、完整推荐、大规模买量硬化。
编制:推荐 2 人(或 1 全栈 + 1 偏前端/产品)+ AI Coding;1 人硬扛能出可播版,但测试与运营后台会挤。
开源边界
能拼播放/PWA
缺 CMS·账本·支付·后台 FACT
视频云主轨
Bunny Volume
Mux/CF 作对照试投 CLAIM
1万 DAU 媒体费
Bunny ~$470
Mux/CF ~$4.8k–$5k ×假设
一个月交付
可播可充可运营
非大规模买量就绪 CLAIM
系统一张图
[广告点击] → HTTPS 落地/播放页 (PWA)
↓
竖屏播放器 (hls.js + 自研壳) ← CDN / 点播 (Bunny Volume 主荐)
↓ ↑ 签名 URL / Token
用户会话 → 剧库 CMS → 付费墙(金币/VIP)
↓
支付通道 → webhook 验签 → 金币账本幂等入账
↓
Pixel / CAPI 回传 Purchase(工程占位)
↓
运营后台:剧集 · 媒资 · 订单 · 用户 · 运营位 · 看板
阅读顺序建议:本页 → 技术储备 → 视频云 → 前台/后台模块 → 缺口清单 → 人力与路线图。现有「起盘完整手册」隧道勿动;本页是独立抽出来的技术+视频云材料。
01技术储备与规划
拍板:从 0→MVP→可买量,核心是「业务自控 + 媒资采购」。必须自控:锁集鉴权、金币账本、剧库版权元数据、用户 ID。可采购:转码/CDN、Auth SaaS、推送 SaaS、增长壳(合同排除违规手段)。工期量级见第 9–10 章。
(a) 到底要储备什么、做哪些事
团队角色与工期量级
| 角色 | MVP 做什么 | 量级 CLAIM |
| 全栈 / 前端 | 竖屏播放器、PWA、前台页面、埋点 | 主力 |
| 全栈 / 后端 | BFF、CMS API、账本、签名 URL、webhook | 主力 |
| 兼职媒资 | Bunny/转码模板、样片验收 | 0.2–0.5 人 |
| 产品/运营 | 需求冻结、入库 SOP、免费集策略 | 兼职即可 MVP |
| 法务/商务 | 版权合同、隐私条款、支付 KYC(并行,非写码) | 外部等待 |
假设:需求相对冻结、样片就绪、托管点播(不自建 FFmpeg 集群)。自建转码农场另加约 4–8 周。
薄自建 + 厚采购 MVP 组合:Vite/React 竖屏 + hls.js + vite-plugin-pwa → Bunny Stream(主)→ Nest/Node 或 Go + Postgres + Redis(用户/CMS/账本)→ 支付 Checkout + Webhook → Meta Pixel/CAPI 占位。推送与完整推荐第二月再上。
02可用开源框架(分别用在什么环节)
拍板:开源世界缺的是「剧库 CMS + 金币账本 + 支付 webhook + 运营后台」整套,不是缺一个 <video>。没有开源整站短剧运营系统可直接商用。 FACT(2026-09-22 检索)
播放引擎
| 组件 | 适合度 | 用在哪 | 缺口 |
| hls.js | 高 | 海外 VOD HLS 默认;Safari 可走原生 | 无 UI;竖屏/预加载自研 |
| Video.js | 中高 | 要完整控件+插件时 | 包体偏重;Reels UX 仍自研 |
| Shaka Player | 高·要 DRM 时 | Widevine/FairPlay、离线 | 需 license 服务;竖屏自研 |
| dash.js | 中低 | DASH 优先栈才值得 | 短剧出海多 HLS-first |
默认:hls.js + 自研竖屏壳;有版权防盗硬需求再上 Shaka。何时 DRM:正版高价值片库、盗录投诉多、商务合同要求——MVP 通常用签名 URL 即可,DRM 放 P2。
PWA / 前端 / 竖屏 / 推送
| 环节 | 推荐 | 说明 |
| PWA | Workbox、vite-plugin-pwa、Manifest | 壳预缓存;视频片段勿大力 CacheFirst |
| 前端框架 | Vite + React/Vue(播放壳最快);要强 SEO 落地页用 Next/Nuxt | 播放页客户端为主即可 |
| 竖屏 UX | react-riyils 等(MIT) | 组件级开源,非整站;无 CMS/金币 |
| 推送 | web-push(Node)/ OneSignal | iOS 仅已「加到主屏幕」的 Web App 可用 |
后端 / 媒资
| 环节 | 建议 | 理由 |
| 后端栈 | Node/Nest 或 Go 或 Python(FastAPI) | 团队熟哪个用哪个;短剧业务 CRUD+webhook 三种都能扛 |
| DB | Postgres | 账本流水、约束、审计友好 |
| 缓存/队列 | Redis | 会话、限流、转码任务队列、热点目录 |
| 媒资 | MVP:Bunny / Mux / CF Stream;量上来再评 ffmpeg 自建 | 勿过早自建转码农场 |
白标/克隆源码:Flicknexs、Miracuves 等能省壳,但安全债、支付密钥硬编码、侵权 UI 风险常见——当加速器做独立安全审计,不要当免维黑盒。 CLAIM
03坑与门槛
拍板:最容易翻车的不是选错 hls.js,而是 iOS 限制、只靠前端锁集、盗链流量爆炸、账本双加、以及成人内容被视频云拒。下面按工程优先级列。
1. iOS 安装 / 推送 / 自动播
- 无 Chrome 同款一键安装横幅;需引导「分享 → 添加到主屏幕」
- Web Push:iOS 16.4+ 且已安装并以 standalone 打开才可用
- 自动播遵循浏览器静音策略:先静音播,用户手势后再开声
- 进度/购买以服务端为准——WebKit 可能清本地存储
2. 锁集必须服务端鉴权
- 前端蒙层只是体验;播放票据(签名 URL / token)由 API 在「已解锁」后签发
- 未登录 / 余额不足 / 已解锁 四态都要测
- 勿把 m3u8 永久公开 + 只靠「隐藏按钮」
3. 签名 URL / 防盗链
- 短时签名(分钟级)+ 可选 Referer/IP 策略
- 盗链 = CDN 账单爆炸;监控异常带宽尖峰
- 防盗链 ≠ cloaking;本文不做斗篷
4. 金币账本幂等与 webhook 对账
- 同一支付事件重复投递不得双加币
- 订单号唯一约束;入账流水可审计
- 退款/拒付冲正占位(工程位,通道尽调另文)
5. 成人 / 擦边内容 vs 视频云政策
| 厂商 | 判定 | 标签 |
| Bunny | AUP 明文接受合法 adult content(须合法+遵守 ToS) | FACT |
| Mux | ToS 含 obscene / otherwise objectionable;无成人白名单;执法尺度不明 | FACT 尺度U |
| CF Stream | 未见与 Bunny 同等 adult 白名单;非法有害可删可封 | UNVERIFIED 实务 |
尽调结论:擦边主片库优先 Bunny;Mux/CF 仅试投且书面确认样片,勿作唯一源。不写任何规避 ToS 方案。
6. 克隆源码安全债
硬编码密钥、过期依赖、侵权 UI、难过正规商店——买了不能直接投,要审计与重写支付/鉴权路径。
7. 弱网 / 预加载 / 码率成本
多预加载友好感,但缓冲计入投递分钟/流量。GB 制账单随码率线性涨;分钟制相对不敏感码率。默认主档 720p 量级起步。 CLAIM
多地区合规(点到为止,非法务意见):隐私政策与同意/Cookie 条、年龄门(18+)、自动续订与退订入口、地区内容可见性。律师审条款;工程留开关与文案位。
04业务量大之后要做的准备
拍板:账单大头几乎总是带宽/观看分钟,不是服务器。量上来后优先:CDN/多区域、转码队列与多码率、播放 QoS、账本对账与异常解锁风控、灰度与备份。成本模型沿用既有假设并标 CLAIM。
| 能力 | 做什么 | 何时 |
| CDN / 多区域 | Bunny 多存储区或 Volume;热点地区延迟与账单拆账 | DAU 上千起就要盯 |
| 转码队列 | 批量入库、失败重试、替换片源 | 片库从几部→几十部 |
| 多码率阶梯 | 360/540/720/1080;默认中档;弱网降档 | MVP 至少 2–3 档 |
| 播放 QoS | 失败率、起步耗时、卡顿率;按区/机型拆 | 小流量试投前就要有 |
| 推荐与 feed | 「看完→下一部」、简单标签;个性化后置 | V1 / 第二月 |
| 缓存分层 | 目录 API 短 TTL;视频不进 SW 大力缓存 | MVP 起 |
| 账本与风控 | 对账任务、异常解锁告警、设备/账号限速 | 有真实付费起 |
| 多环境 / 灰度 / 灾备 | dev/staging/prod;特性开关;片库第二源站预案 | staging MVP;灾备第二月 |
成本模型直觉(沿用既有带宽假设)
片库假设:100 部 × 50 集 × 90s ≈ 7,500 分钟;观看:每 DAU 10 集/天 +10% 预加载 → 约 16.5 计费分钟/人/日。 CLAIM
| 厂商 | 1 万 DAU 媒体月费量级 | 标签 |
| Bunny Volume | ~$467 | FACT×假设 |
| Mux 1080p Basic | ~$4,853 | FACT×假设 |
| CF Stream | ~$4,990 | FACT×假设 |
价源抓取约 2026-09-24;正式采购以控制台/合同为准。详见既有《视频云服务对比》《媒体流量费用预估》。
05前台模块(用户端 Web App)
拍板:MVP 必须能浏览、竖屏播免费集、锁集付费墙、登录、钱包余额与充值入口、收藏续看、PWA 安装引导。订阅 VIP、推送、精细推荐、多语言可标 V1 增强。
06后台管理模块
拍板:运营每天要碰的是:剧集上下架、免费集数与定价、媒资转码状态、订单查询、用户封禁、Banner。权限至少超管/运营/客服三档。手动补单要谨慎留审计。
短剧 / 分集
- 入库:剧、分集、封面、简介、标签、排序
- 元数据:地区可见、语言、授权到期日(字段预留)
- 上下架;免费集数;单集价 / VIP 标记
媒资
- 上传、转码状态、预览、替换片源、下线(停签播放 URL)
- 与 Bunny/Mux 媒资 ID 绑定
充值扣费 / 买金币
- 商品档位、展示币种/汇率文案位
- 订单查询;手动补单(权限+审计日志,谨慎)
- 退款占位(状态机,通道侧另对接)
订阅
用户
- 查询、封禁;余额只读审计(改余额走工单+补单,勿前台随意改)
运营位
数据看板(指标清单)
- 播放:VV、完播、失败率、卡顿
- 解锁:曝光→点击解锁→成功扣币
- 付费:发起支付→成功、ARPU 粗看
- 内容:按剧/集热度
权限
| 角色 | 能力 |
| 超管 | 全部;改价、补单、角色管理、密钥 |
| 运营 | 剧集/媒资/运营位/看板;无补单或需双人 |
| 客服 | 订单查询、用户查询、退款工单提交;只读余额 |
07视频云专章
主荐:Bunny Stream Volume。理由:① 公开 AUP 接受合法成人内容;② 放量按 GB 账单远低于 Mux/CF 分钟制;③ 标准转码免费,工程可接。Mux 适合「人极少、先验证漏斗」换省开发,不宜作擦边唯一片库。 CLAIM
厂商对比(能力 / 价感 / 成人 / 签名 / 短剧适合)
从上传到用户可播(端到端)
1. 运营在后台选剧/集 → 上传原始 MP4/MOV
2. 视频云或管道:探针 → 转码多码率 HLS(竖屏 9:16,2–4s 分片)
3. 抽封面 / 可选雪碧图 → 回写媒资 ID + 转码状态=就绪
4. CMS 上架;配置免费集数 / 单集价
5. 用户点播 → API 校验登录与解锁状态
6. 通过则签发短时签名 URL / token → 播放器 hls.js 拉 m3u8
7. CDN 出片段;播放 QoS beacon 回传
8. 未解锁 → 只返回锁集态,不签发可播地址
费用粗算思路(标假设)
- 分钟制(Mux/CF):月费 ≈ 存储分钟单价 × 片库分钟 + 投递分钟单价 × 观看分钟(含缓冲)
- GB 制(Bunny):月费 ≈ 存储 GB × 单价 + 出网 GB × 单价;出网 GB ≈ 观看分钟 × 有效码率换算
- 有效码率假设常取竖屏中档 ~2.5 Mbps;预加载系数 ~1.1 CLAIM
- 例:1 万 DAU、既有观看假设 → Bunny Vol ~$467 vs Mux ~$4.8k(仅媒体,不含 App 服务器)
价源:bunny.net / mux.com/pricing / developers.cloudflare.com/stream/pricing(约 2026-09-24)。核不到的合同折扣标 UNVERIFIED。
08容易漏、必须覆盖的清单(产品+技术合伙人)
拍板:用户已提播放/CMS/视频云之外,最常漏的是:账本幂等、归因事件位、异常解锁风控、环境与密钥、年龄门与同意条。下表每项标明是否 MVP 必须。
| 项 | 为什么容易漏 / 要做什么 | MVP? |
| 账号体系与风控 | 登录(Email/Google)、设备指纹粗限流、异常高频解锁告警、防刷币(同设备多号、异常充扣比)。没有风控,一上量就被薅。 | MVP:登录+基础限流;完整设备图谱 第二月 |
| 支付工程位 | Checkout 跳转、webhook 验签、幂等账本、日对账任务、退款状态机占位。通道选型另文;这里必须能正确入账。 | MVP 必须 |
| 买量归因与回传 | Meta Pixel + CAPI(同一 event_id 去重);Purchase / InitiateCheckout。TikTok Events API 可第二月。没有事件位就无法优化买量。 | MVP:Meta 占位;TT 第二月 |
| 数据看板与埋点 | 播放、卡顿、解锁漏斗、付费成功。先有事件表+简易看板,再美化。 | MVP:关键漏斗;完善看板 第二月 |
| 多语言 / 多地区可见性 | UI 文案 i18n;剧按地区开关。冷启动可先单一语言+地区字段预留。 | 字段 MVP;多语言 UI 第二月 |
| 客服 / 退款 / 订单查询 | 后台订单查、用户侧客服入口、退款工单。影响拒付率与商店/支付口碑。 | MVP:查询+入口;SLA 流程 第二月 |
| 隐私合规底线 | 同意条/Cookie、隐私政策链接、年龄门(18+)、退订。点到为止,律师审文案。 | MVP 必须(底线) |
| 内容生产对接 | 采买入库 SOP:命名、封面规格、字幕/配音字段、授权到期、质检清单;CMS 字段对齐。 | MVP:字段+简 SOP |
| 域名 / HTTPS / 环境 | dev / staging / prod;播片域与业务域策略;证书与密钥分离。没有 staging 容易生产误操作。 | MVP:至少 staging+prod |
| 灰度与回滚 | 前端版本回滚、特性开关、数据库迁移可逆策略。 | 简版 MVP;完善第二月 |
| 监控告警与播放 QoS | API 5xx、播放失败率、带宽尖峰、webhook 失败。Sentry + 云告警即可起步。 | MVP:基础告警 |
| 安全 | 签名 URL、管理端 2FA/角色、密钥进密钥管理(勿进仓库)、后台操作审计。 | MVP 必须 |
| SEO / 分享卡片 | og 图文、剧详情可分享。买量主路径不依赖 SEO。 | 可选;第二月 |
09工作量与人力评估(含 AI Coding)
拍板:同等范围,2026 年 AI Coding(Cursor 等)相对纯手写,CRUD/壳/样板大约能压到 4–6 成工时;竖屏手感、iOS 真机、账本安全、联调验收压缩有限(大约仍要 7–9 成)。整体项目日历常见压缩到约 5–7 成。 CLAIM 区间,视人熟练度与需求冻结度。
1) 按模块拆(人天区间 · 假设 1 名熟练全栈当量)
假设:需求冻结、样片就绪、Bunny/Mux 账号可用、不自建转码农场。数字是区间不是报价。
按 1 人全职约 20–22 有效人天/月:AI 加持下单人日历大约 1.5–2.5 个月 到可运营 MVP;两人并行可压进约 1 个月(仍受联调与真机约束)。 CLAIM
2) AI 能压什么 / 压不动什么
| 类型 | 说明 |
| 能大幅压缩 | CRUD/CMS、Auth 壳、列表详情、API 样板、PWA 脚手架、导入脚本、基础埋点 |
| 压缩有限 | 竖屏手感与预加载、iOS Safari 真机坑、签名/锁集安全、webhook 幂等、弱网调优、生产告警、片库质检 |
| 外部等待(并行) | 云账号、支付商户、域名 DNS、版权文件——不垫长编码日历,但会卡「可收费上线」 |
3) 推荐编制与风险
- 一人全栈 + AI:能硬扛出可播 MVP,但后台完善度、测试覆盖、运营体验会挤;单点生病/请假即停。风险:进度看似快、线上坑后置。
- 要不要专职产品/设计/测试:MVP 可用「兼职产品定规则 + 套现成 UI 库」;专职设计非必须。测试至少要有真机清单,专职测试可第二月。
4) 三档编制 →「一个月能到哪」
| 档位 | 编制 | 一个月大概到哪 |
| 极简 | 1 全栈 + AI | 可播免费集 + 基础锁集 + 简 CMS + PWA 可装;充值/webhook 可能刚打通或不稳;后台简陋 |
| 推荐 | 2 全栈,或 1 全栈 + 1 前端偏产品 | 可播可充可运营入库:账本可用、订单可查、Meta 事件占位、staging/prod、基础 QoS |
| 稳妥 | 2–3 人 + 兼职设计 | 同上 + 更好的竖屏手感/视觉、更完整后台权限、测试清单签收;仍不是「大规模买量平台」 |
10路线图与排期
一个月能不能完成?——能完成的是「可播、可充、可运营入库」的 MVP;不能完成的是「可大规模买量 + 高可用多活 + 完整个性化推荐 + 推送体系成熟」。边界说清楚再排期。 CLAIM
结论给合伙人:在「推荐编制(约 2 人)+ 托管点播 + 样片与支付沙盒按时就绪」前提下,押一个月上线 MVP 可行。若只有 1 人,建议对外承诺改为 6 周,或砍后台/订阅/归因深度。
若押一个月上线:W1–W4
W1 · 骨架与通路
交付:域名 HTTPS、环境(staging/prod)、用户登录、剧/集数据模型、Bunny 账号打通上传→可播一条样片、竖屏播放器能播免费集、PWA Manifest 初版。
验收:真机 Android/iOS 各一可播样片;CMS 能建一部剧两集。
依赖:视频云账号、域名、≥1 部样片、设计稿可后补用组件库。
W2 · 锁集与账本
交付:锁集服务端鉴权 + 签名 URL、金币账本模型、支付 Checkout + webhook 沙盒入账、余额展示与扣币解锁、收藏与续看云同步初版。
验收:沙盒支付成功后余额增加;扣币后可播;重复 webhook 不双加。
依赖:支付沙盒密钥、商品档位文案。
W3 · 运营后台与前台完整度
交付:后台剧集/媒资/订单/用户查询、Banner 位、前台首页分类详情钱包、安装引导(含 iOS 图文)、年龄门与隐私链接、Meta Pixel/CAPI 占位、基础监控告警。
验收:运营不靠改库能上架一剧;订单可查;播放失败有告警。
依赖:隐私政策初稿、像素账号。
W4 · 硬化与试投就绪
交付:弱网与真机清单过一遍、权限三角色、批量入库脚本、小流量试投开关、回滚方案、已知问题清单。
验收:预生产走通「看免费→锁集→充值→解锁→续看」;签收 MVP 范围外不做清单。
依赖:正式支付/商户若未过审,则仅沙盒+内测用户。
可选:6 周缓冲版(资源紧 / 单人)
- W1–W2:同上面 W1,节奏放慢 + 播放器打磨
- W3–W4:锁集账本支付
- W5:后台与前台完整度
- W6:硬化、归因、试投
单人 + 外部等待(支付过审)时强烈建议按 6 周对外沟通。
11阶段目标:一个月 vs 两个月
拍板:第一个月追求「闭环跑通」;第二个月追求「可小规模测投与运营效率」。不要把第二个月的东西塞进第一个月承诺。
一个月能做到什么
- 竖屏播免费集 + 锁集付费墙(服务端鉴权)
- 登录、钱包余额、充值→webhook 入账→扣币解锁
- 简版 CMS:剧集上下架、定价、媒资状态
- 订单查询、基础角色权限
- PWA 可安装(Android);iOS A2HS 引导
- Bunny(或等价)主路径打通
- Meta 像素/CAPI 事件占位
- staging/prod、基础监控、年龄门与隐私链接
明确做不到(别写进一个月 OKR):
- 大规模买量下的稳态 ROI 优化与完整归因科学
- 多活/高可用与完善灾备
- 个性化推荐引擎
- 成熟 Web Push 运营体系(尤其 iOS)
- 多语言完整 UI + 多地区合规精细化
- 自建 FFmpeg 转码集群
- 支付通道商务尽调结论(另册)
两个月能做到什么(相对增量)
- 推送(Android 为主)+ 频控与退订
- 订阅 VIP 与金币组合策略完善
- 播放 QoS 看板与卡顿告警细化
- 多语言 UI;地区可见性真正用起来
- TikTok 等第二渠道归因打通
- 内容批次运营:批量入库、授权到期提醒
- 小规模真金测投(视支付过审与素材)
- 客服退款 SLA、异常解锁风控加强
- 可选:激励广告解锁、TWA 诚实上架评估
第二月末较现实的状态:日活千~万级试投可控成本(Bunny),漏斗可优化,运营不靠工程师改库,知道哪几部剧赚钱。
坑 Top5(复习)
- 锁集只做前端
- 成人片库选错视频云(Mux 风险 vs Bunny)
- webhook 不幂等导致刷币/客诉
- 忽略 iOS 安装与推送限制
- 预加载无节制 → 带宽账单爆炸