TMDB Cloudflare Worker Proxy
一个基于 Cloudflare Worker 的 TMDB API 与图片代理服务。
支持:
- TMDB API 代理
- TMDB 图片代理
- 隐藏 API Key
- Cloudflare Edge Cache
- KV 二级缓存
- 多 API Key 轮换
- 自定义域名
文件说明
项目包含两个版本:
| 文件 | 说明 | 适合场景 |
|---|---|---|
| index.js | 轻量版 | 个人使用、小规模部署 |
| tmdb.js | 生产版 | ATV-Player、影视TV、TvBox 等公开服务 |
index.js(轻量版)
特点:
- 单文件
- 无 KV 依赖
- API 代理
- 图片代理
- Edge Cache
- API Key 隐藏
适合:
- 自用
- 测试
- 小规模用户
部署时直接复制到 Cloudflare Worker 即可。
tmdb.js(生产版)
特点:
- API 代理
- 图片代理
- API Key 隐藏
- Cloudflare Edge Cache
- KV 二级缓存
- 多 API Key 自动轮换
- IP 限流
- CORS
- 热门接口缓存
适合:
- ATV-Player
- TvBox
- 影视TV
- 公共 API 服务
推荐使用 Wrangler 部署。
获取 TMDB API Key
注册:
创建 API Key:
https://www.themoviedb.org/settings/api
部署方式
方案一:Dashboard(推荐新手)
创建 Worker
Cloudflare Dashboard
Workers & Pages
Create Worker
使用轻量版
复制:
index.js
内容到 Worker。
添加环境变量
Settings
Variables
新增:
TMDB_KEYS
值:
your_tmdb_api_key
部署即可。
方案二:Wrangler(推荐生产环境)
安装
npm install -g wrangler
登录
wrangler login
创建 KV
wrangler kv namespace create TMDB_CACHE
记录返回的 Namespace ID。
wrangler.toml
name = "tmdb-proxy"
main = "tmdb.js"
compatibility_date = "2026-06-06"
[[kv_namespaces]]
binding = "TMDB_CACHE"
id = "YOUR_KV_NAMESPACE_ID"
配置 API Key
wrangler secret put TMDB_KEYS
输入:
key1,key2,key3
支持多个 Key。
本地运行
wrangler dev
部署
wrangler deploy
API 示例
请求:
https://tmdb.example.com/3/movie/550
实际访问:
https://api.themoviedb.org/3/movie/550
并自动附加 API Key。
图片示例
请求:
https://tmdb.example.com/t/p/w500/abc.jpg
实际访问:
https://image.tmdb.org/t/p/w500/abc.jpg
ATV-Player 配置
TMDB API URL:
https://tmdb.example.com
缓存策略
轻量版:
| 类型 | 缓存 |
|---|---|
| API | 1小时 |
| 图片 | 30天 |
生产版:
| 类型 | 缓存 |
|---|---|
| Edge Cache | 1小时 |
| KV Cache | 24小时 |
| 图片 | 30天 |
推荐选择
个人使用:
index.js
公开服务:
tmdb.js
如果预计用户超过 1000 人,推荐直接使用生产版。