内容
align=" <img src="docs/img/logo.svg" width="120" height="120" alt="BokeBox" />
</p>
<h1 align="center">BokeBox</h1>
<p align="center">
<b>内容输入,私人播客输出。</b><br/>
<sub>将视频、链接、文章、会议和课程转化为你可以真正完成的私人播客 — 主持人、声音和风格,全部归你所有。</sub>
</p>
<p align="center">
<b>English</b> · <a href="./README.zh-CN.md">简体中文</a>
</p>
<p align="center">
<a href="https://github.com/vastsa/BokeBox/"><img src="https://img.shields.io/badge/%E5%BC%80%E6%89%93%E6%BA%90-GitHub-181717?style=flat-square&logo=github" alt="GitHub" /></a>
<a href="#-30-second-pitch"><img src="https://img.shields.io/badge/AI-%E8%AE%90%E6%88%90%E8%84%9A%E6%9C%AC%E7%A8%8B-7C5CFF?style=flat-square" alt="AI" /></a>
<a href="#-problems-it-solves"><imghttps://img.shields.io/badge/%E7%A7%6%9C%89-%E5%8D%E4%B8%AA%E7%94%A8%88%B7-0EA5E9?style=flat-square" alt="Private" /></a>
<a href="img src="https://img.shields.io/badge/%E6%82%E6%%89%E6%%83%E9%90-LGPL--3-22C55E?style=flat-square" alt="LGPL-3.0" /></ <a href="https://github.com/vastsaBox"><img src="https://visitor-badge.laobi.icu/badge?page_id=vastsa.BokeBox&left_text=visitors&left_color=555&right_color=22C55E" alt="visitors" /></a>
</p>
<p align="center">
<a href="#-30-second-pitch">产品</a> ·
<a hrefwho-its-for">适用人群</a> ·
<a href="#-ui-glimpse">界面</a> ·
<a href="#-get-started">开始使用</a>
</p>
<p align="center <img src="docs/img/banner_en.webp" alt="BokeBox — 内容输入,私人播客输出。" width="100%" />
</p>
---
## 🎧 是否熟悉以下情景?
- 你保存了许多讲座、课程、会议笔记和长文章 — 总是稍后”
- 在、做家务或时,你想消化信息手机只提供短视频
- 你想要一个属自己的节目**,无需在深夜对着麦克风录音
- 你尝试过AI播客演示:声音僵硬、语气单一,你听两分钟就放弃了
**BokeBox就是为这些时刻而设计的。**
**不限于长视频。** 将视频、网页链接、文章、会议笔记、课程材料或纯文本草稿放入盒子(并通过源插件扩展更多来源)。它将:
1. 理解内容
2. 重写为口语脚本
3. 用你选择的语音朗读
4. 转化为你可以随时播放的私人播客
---
## ⚡ 30秒快速了解
```text
你输入的内容 BokeBox 返回的内容
───────────────── ──────────────────────
会议 / 笔记 节奏舒缓的播客集
课程 / 材料 ─AI──▶ 自定义主持人形象
篇文章 / 草稿设 / 描述的语音 任意链接(插件扩展) 封面闪卡 · 进度
```
**一句话总结:不仅仅是一个单一格式的“媒体转音频”转换器 — **一个属于你自己的多源AI播客工作室**。
---
## ✨ 为什么给它一个星标?
关心的点 | BokeBox 如何实现 |
| --- |
| **你可以真正完成它** | 不是枯逐字阅读 — AI 重写为口语结构:开头、亮点、结尾 |
| **多源输入** | 视频 / 链接 / 草稿 / 会议 & 课程 — 通过源插件进一步扩展 |
| **听起来像人说话** | 自然的播客语音 + 表达标签(停顿、轻微笑声、语速变化……) |
| **你拥有主持人形象** | 主持人是谁、与谁对话、风格、节目名称 — 全局默认或每集自定义 |
| **AI 原生控制** | 内置 MCP,因此 Cursor / Claude 可以创建集和查询任务 |
| **知识巩固** | 自动提取的闪卡,让关键点易于复习 |
| **你的数据属于你** | 单用户私有部署;任务和进度保留本地 — 无公共社交动态 |
如果你相信:
> 优秀的内容值得二次聆听 — 以*你*喜欢的方式讲述。
给 BokeBox 一个 ⭐,帮助更多人发现私人 AI 播客。
---
## 🎯 它解决的问题
### 从“从未读完/看完”到“轻松听完”
长视频、文章、会议和课程材料内容丰富,但它们会占用**眼睛时间**和**不间断的时间块**。
BokeBox 将它们转化为**耳朵时间**:通勤、做家务、睡前 — 仍然高效。
### 从“机器人读脚本”到“有个人风格的节目”
你可以设置:
- 主持人如何自我介绍
- PM、老师或朋友聊天氛围
- 节目名称、语气、开场/结尾习惯
- 使用哪种语音(或描述你想要的音色)
**AI 生成内容,你来控制风格和品味。**
### 从“听过就忘”到“随身携带闪卡”
每集节目都附带音频、知识卡和笔记 — 一次聆听变成可复习的资产。
---
## 👤 适用人群
- **终身学习者**:太多的课程、采访、主题演讲和论文 — 想在空闲时间获取重点
- **创作者/研究人员**:通过耳朵消化多源素材,然后再写作或编辑
- **独立创始人/独立黑客**:将会议、链接、笔记和合成一个个人“信息广播”
- **注重**:内容留在你的机器上,而不是平台算法
如果你想要一个公共播客平台、多租户SaaS或实时协作编辑。BokeBox故意设计为小巧、私有和深入的。
---
## 🖼 界面一瞥
在一个私人空间中创建、聆听和管理任务资产。
| 首页 | 播放器 |
| :---: | :---: |
| <img src="docs/img/home_en.webp" alt="BokeBox 首页" /> | <img src="docs/img/lis_en.webp" alt="BokeBox 播放器" /> |
你将获得:
- **首页库** — 已完成的节目和正在进行的任务一目了然
- **一键创建** — 上传视频 / 粘贴链接 / 拖入草稿,设置主持人形象和语音
- **任务详情** — 全流程的转脚本、音频、封面、闪卡
- **沉浸式播放器** — 进度记忆、速度、睡眠定时器
---
## 🪄 使用感受
**放入内容**
本地视频、网页链接、文章或现有的草稿/笔记 — 另外通过插件扩展的来源。
2. **调整(可选)**
保持全局主持人形象,或为这一集设置不同的语气。
3. **去做其他事情**
转录 → 脚本 → 语音 → 封面/卡片 — 在后台运行。
4戴上耳机**
打开播放器。感觉就像为你量身定制的节目。
---
## 🔌 MCP(AI 原生控制)
BokeBox 配备了内置的 **MCP(模型上下文协议)** 端点。设置完成后,服务器**自动颁发长期令牌**。
- 协议:`POST /mcp`(Bearer token)
- 安装 payload:`GET /api/mcp/install`(需要登录),或 **设置 → MCP**
- 工具包括:`create_podcast_from_url`、`create_podcast_from_text`、`list_jobs`、`get_job`、……
Cursor 示例:
```json
{
"mcpServers": {
"bokebox": {
"url": "http://localhost:8787/mcp",
"headers": {
"Authorization": "Bearer <从设置 → MCP 获取的令牌>"
}
}
}
}
```
可选环境变量 `PUBLIC_BASE_URL` 有助于在反向代理后面生成正确的安装 URL。
## 🚀 开始使用
> 三步即可启动。更深入和模型说明请参见附录。
```bash
https://github.comsa/BokeBoxcd bokebox
env.example .env 添加你的 API 密钥
./start.sh # 打开 http://localhost:5173
```
首次启动将引导你完成**账户设置**和模型配置。
之后,你的第一集私人播客只需一步之遥。
**Docker(推荐:拉取预构建镜像):**
```bash
cp .env.example .env
docker pull ghcr.io/vastsa/bokebox:latest
./start.sh docker
# 打开 http://localhost:8787
```
**Docker(从源码本地构建):**
```bash
cp .env.example .env
./start.sh docker.local
```
**Docker(中国镜像构建,推荐在大陆服务器上使用):**
```bash
cp .env.example .env
./start.sh docker.cn
# DaoCloud 节点镜像 + 阿里云 apt + npmmirror
# 安装系统 ffmpeg 以避免 GitHub 二进制下载超时
```
---
## 💬 一句话分享
> BokeBox:将视频、链接、文章、会议和课程转化为你真正会听的私人播客。AI 口语脚本,自定义主持人形象和语音,MCP + 可扩展的源,数据留在你的机器上。
如果你认同:
1. ⭐ **给仓库加星标**,让更多人看到
2. 打开一个问题 — 你最想“播客化”的内容是什么?
3. 欢迎 PR — 尤其是在 UX、文案、更多语音和模型适配器方面
---
## 🛤 路线图
- 更好的多集/“继续收听”流程
- 更丰富的语音和提供商
- 订阅导出(例如 RSS)到你已经使用的应用程序
- 更轻量的“一键”桌面打包
你的星标、问题和 PR 就是路线图的投票。
---
## ❤️ 结束语
大多数工具帮助你**更快地生产内容**。
BokeBox 更关心帮助你**更好地消化内容**。
在一个过载的时代,你能听完的就是真正属于你的。
**内容输入,私人播客输出。**
将 BokeBox 添加到箱 — 并给它一个星标,让更多人发现它。
---
<details>
<summary><b>附录:给想要部署的人></summary>
### 要求
- Node.js22.5 · pnpm 9.x
- OpenAI 兼容的 API(Chat / ASRTS;图像模型可选)
### 常用命令
| 命令 | 描述 |
| --- | --- |
| `./start.sh` | 本地开发(网页 5173 + API 8787) |
| `./start.sh prod` | 构建并在单个端口上运行 |
| `./start.sh docker` | 拉取 `ghcrastsa/bokebox:latest` 并启动 |
| `./start.sh docker.local` | 从本地 Dockerfile 构建并启动 |
| `./start.sh docker.cn` | 使用中国镜像构建并启动(大陆服务器) |
| `./start.sh docker:down` | 停止容器 |
### 配置亮点(`.env)
OPENAI_API_KEY=sk-your-key
OPENAI_BASE_URL=https://api.example.com/v1
OPENAI_CHAT_MODEL=mimo-v2.5
OPENAI_TRANSCRIBE_MODEL-v2.5-asr
OPENAI_TTS_MODEL=mimo-v2.5-tts
OPENTS_DEFAULT_VOICE=冰糖
```
完整变量:`.env.exampleCI/CD 和镜像发布:[`docs/ci-cd.md`](docs/ci-cd.md)。
### 流程(草图)
```text
多源输入(视频 / 链接 / 草稿 / 插件)
→ 标准化 →/理解 → 口语脚本
→ 并行:封面 / 闪卡 / TTS → 库
```
### 技术栈
React · Vite · Fastify · SQLite · ffmpeg · pnpm monorepo
### 许可证
[LGPL-3.0](LICENSE) — 开源;库的派生作品必须保持 LGPL 兼容。
</details>
---
<p align="center">
<b>BokeBox</b><br/>
<sub>私人 AI 播客盒 · 开源 · LGPL-3.0</sub><br/>
<sub><a href="https://github.com/vastsa/BokeBox/">github.com/vastsa/BokeBox</a></sub>
</p>
## 源插件
BokeBox **不限于一种媒体类型**。除了内置的视频 / 链接稿路径外,可选的外部源插件扩展摄取(默认不捆绑高风险的抓取器)。
- 将插件放入 `storage/`,在设置扫描
- 输入标准化为相同的流程:口语脚本 → → 封面 / 闪卡
开发者指南:[docs/source-plugin-development.md](./docs/source-plugin-development.md)
- 架构说明:[docs/source-plugins.md](./docs/source-plugins.md)
- 示例插件:[examples/source-pluginexamples/source-plugin-echo)