indicaindependent/blueboxd
GitHub: indicaindependent/blueboxd
基于 AT Protocol 和 Cloudflare Workers 构建的公有领域经典电影流媒体与 Letterboxd 风格社交平台,观影数据归用户所有。
Stars: 0 | Forks: 0
# 📺 Blueboxd
### 免费的公有领域电影,附带存在于*你的* Bluesky 账户中的观影日记。
**经典电影的 Letterboxd 风格社交层 —— 基于 AT Protocol 构建。**
无需创建账户。无广告。无跟踪。我们不托管任何视频。
[**在线访问 → blueboxd.com**](https://blueboxd.com) · [镜像站点 → cineclub.osintnet.uk](https://cineclub.osintnet.uk) · [@blueboxd.bsky.social](https://bsky.app/profile/blueboxd.bsky.social)
## 这是什么?
**Blueboxd** 直接从 [Internet Archive](https://archive.org) 流式传输精心挑选的公有领域电影 —— 包括黑色电影、经典恐怖片、黄金时代喜剧、科幻片等 —— 并配有一个**将数据写入你自己的 Bluesky repo 的 Letterboxd 风格社交层。**
你的观影日记、评分、评论和收藏并没有被锁定在我们的数据库中。它们通过 AT Protocol 作为记录存储在**你的** Personal Data Server (PDS) 中 —— 完全可移植,永远属于你,可被任何 atproto 应用读取。我们托管**零视频**:所有流媒体均直接来自 archive.org 的公有领域合集。
它作为单个 **Cloudflare Worker** 在边缘端运行。仅一个文件,无需构建步骤,无需框架。
## 功能
- 🎞️ **精选公有领域目录** —— 6 个精心调教的频道(Film Noir、经典恐怖片、科幻片、黄金时代喜剧、嘉年华与马戏团、监狱区),数据实时来源于 Internet Archive
- 🎭 **按主演和导演浏览** —— 为 40 多位经典时代人物(Bogart、Stanwyck、Lang、Wilder 等)提供来自 TMDB 的肖像轨道
- 📔 **便携式观影日记** —— 观影记录、评分和评论通过 AT Protocol 写入**你的** Bluesky PDS
- 🍿 **俱乐部正在看** —— 一个展示成员们正在观看内容的实时社区 feed,基于公开的 atproto 记录构建
- 🔴 **观看派对发现** —— 呈现当前在 Bluesky 上热议的真实 #TCMParty / #FilmSky / #NoirAlley 话题(只读模式 —— 我们只展示热议,绝不发送垃圾信息)
- 🦋 **Bluesky OAuth** —— 使用你已有的账户登录;无需设置新密码
- ⚖️ **法律优先** —— 点击即同意的许可机制、DMCA 下架流程、仅限公有领域的来源、播放健康状况的可观测性
- ⚡ **边缘原生** —— 单个 Cloudflare Worker,使用 D1 进行遥测,KV 用于缓存。冷启动仅需毫秒级。
## 架构
```
+-----------------------------+
Bluesky user --->| Cloudflare Worker (edge) |
(OAuth login) | cineclub_bundled.js |
| |
| - SPA shell + client render|
| - /api/home catalog rails|
| - /api/detail stream lookup|
| - /api/discovery party feed|
| - OAuth + session handling |
+------+--------------+-------+
| |
+------------+ +-------------+
v v
+--------------------+ +------------------------+
| Internet Archive | | Your Bluesky PDS |
| (public-domain | | (diary / ratings / |
| video streams) | | reviews -- you own) |
+--------------------+ +------------------------+
| |
v v
+--------------------+ +------------------------+
| TMDB (portraits + | | D1 + KV (telemetry, |
| poster metadata) | | caching, consent log)|
+--------------------+ +------------------------+
```
**无源服务器。我们的基础设施上无视频内容。你的社交图谱属于你。**
## 自托管
Blueboxd 是单个 Cloudflare Worker。要运行你自己的实例:
```
git clone https://github.com/indicaindependent/blueboxd.git
cd blueboxd
npm i -g wrangler
cp wrangler.example.toml wrangler.toml # then fill in your IDs
```
**1. 创建绑定** (KV + D1):
```
wrangler kv namespace create CC_KV
wrangler d1 create blueboxd-social
```
将返回的 ID 粘贴到 `wrangler.toml` 中。
**2. 设置你的所有者身份** —— 编辑 `cineclub_bundled.js` 顶部附近的两个占位符:
```
var OWNER_DID = "did:plc:YOUR_OWNER_DID"; // your Bluesky host/owner account DID
var HOST_PDS = "https://YOUR-PDS.host.bsky.network"; // your PDS endpoint
```
**3. 设置 secrets**(切勿提交这些内容):
```
wrangler secret put BLUEBOXD_APP_PASSWORD # host account app-password
wrangler secret put SESSION_SECRET
wrangler secret put CLIENT_PRIVATE_JWK # OAuth client key
# 可选告警:
wrangler secret put SCRAMBLEMEBOT_TOKEN
wrangler secret put PETE_CHAT_ID
```
**4. 部署:**
```
wrangler deploy
```
就这么简单 —— 无构建流水线,生产环境中无 node_modules。整个应用就是 `cineclub_bundled.js`。
## 法律与道德
Blueboxd **仅流式传输**来自 Internet Archive 的**公有领域作品**。我们不托管视频,也不存储受版权保护的媒体。内置了 [DMCA 下架流程](https://blueboxd.com/dmca),并记录了首次访问的同意许可。如果你认为某些内容分类错误,请使用应用内的下架表单。
## 许可证
[MIT](LICENSE) (c) Indica Independent / VPDLNY
**[Indica Independent](https://osintnet.uk)** 开放工具堆栈的一部分 —— 为被华尔街和大型科技公司忽视的人们打造的 OSINT 级软件。
[osintnet.uk](https://osintnet.uk) · [WarHeatMap](https://github.com/indicaindependent/warheatmap) · [Tuck](https://github.com/indicaindependent/tuck) · [Strait Tracker](https://github.com/indicaindependent/straittracker)
*在边缘端构建。由你拥有。* 📺
标签:AT Protocol, Bluesky, 影视, 数据可视化, 流媒体, 社交媒体, 程序员工具, 自定义脚本