一次上传,得到一个永久网址;之后手机打开就能看,电脑可以关机。
两个最容易踩的坑
1. 必须在 Pages 标签里建,不是 Workers。界面出现「Worker 名称」「不支持 Pages Functions」就是走错了。
2. 拖的是 zip 包(或解压后根目录的这几项)。拖成 public/ 文件夹会让网址变成 /public/index.html,首页 404。
你需要准备的:一个 Cloudflare 账号(免费注册)、hubplayer-pages.zip(131KB)。
手机上也能做,但用电脑浏览器拖拽最省事。全程约 3 分钟。
打开控制台
浏览器访问 dash.cloudflare.com, 登录后左侧点 Workers & Pages → 右上 Create → 顶部切到 Pages 标签 (不是 Workers 标签)→ 选 Upload assets → 起个项目名。
建项目 + 拖文件
项目名随便填,例如 hubplayer。把 hubplayer-pages.zip 直接拖进上传框。
包内结构(解开后就是站点根): index.html · icon.svg · manifest.webmanifest · deploy-guide.html · vendor/hls.min.js · functions/api/[[path]].js
如果拖文件夹,请拖解压后这一层——根下能直接看到 index.html,而不是先看到 public。
点 Deploy
十几秒后拿到地址,形如 https://hubplayer.pages.dev。这个就是你的网址,永久有效。
| 系统 | 操作 |
|---|---|
| iOS | 必须用 Safari 打开网址 → 底部 分享 → 添加到主屏幕 → 桌面出现图标,点开全屏无地址栏 |
| 安卓 | 用 Chrome 打开 → 右上 ⋮ → 安装应用(或「添加到主屏幕」) |
| 检查 | 正常表现 |
|---|---|
| 首页 | 出现「热门 20 条」和三列海报 |
| 搜索 | 输入片名,提示「N 条 · X/7 个源有结果」 |
| 中转接口 | 地址后加 /api/proxy?u=aHR0cHM6Ly9janMuZmZ6eWFwaS5jb20vYXBpLnBocC9wcm92aWRlL3ZvZC8/YWM9bGlzdA== 能返回 JSON |
| 播放 | 点卡片 → 有「线路」和「选集」→ 视频开始缓冲 |
如果首页空白:多半是 functions/api/[[path]].js 没进项目。重新拖 zip,注意别只拖 public 目录。
在项目目录执行(需要先建一个 API token):
set CLOUDFLARE_API_TOKEN=你的token set CLOUDFLARE_ACCOUNT_ID=你的账号ID python deploy.py --project hubplayer
token 生成:Cloudflare 右上头像 → My Profile → API Tokens → Create Token → 自定义模板,权限选 Cloudflare Pages : Edit,账号资源选你自己。
账号 ID:dash 里任意域名 Overview 右侧,或地址栏 /accounts/ 后面那一段。
| 项 | 说明 |
|---|---|
| 费用 | 静态页面不限量;中转函数约 10 万次请求/天 免费,自己用绰绰有余 |
| 可见性 | 默认公开:拿到网址的人都能打开(内容来自公开采集站) |
| 私用 | 可加路径前缀、Cloudflare Access 登录门,或函数里加口令参数 |
| 自定义域名 | 可绑定自己的域名(域名几十元/年),网址更顺眼 |
双击 预览.bat,控制台会打印 http://192.168.x.x:8899,
手机连同一个 WiFi 打开即可,效果和部署后一致。
| 页面能开但搜索 0 条 | 某个采集源挂了,点「片源」看哪些可用;默认 7 个,通常有 5~7 个能回 |
| 能搜不能播 | 换「带 m3u8」的线路;标「需 JS」的是分享页,播不了 |
| 视频黑屏转圈 | 该 CDN 在你网络下慢,换线路或换片子 |
| iOS 全屏 | Safari 用原生播放器,点右下角进入全屏 |
| 换手机 | 片源列表在本地,重新加;或在「片源」里用默认 7 个 |