From 0bc0bdd833f714c460eb3368a36bb16af4c4df93 Mon Sep 17 00:00:00 2001 From: fxy Date: Sat, 20 Jun 2026 13:13:15 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Audiobookshelf=20=E7=AB=A0=E8=8A=82?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E4=B8=89=E5=B1=82=E5=90=8C=E6=AD=A5=E9=93=81?= =?UTF-8?q?=E5=BE=8B=20+=20=E5=AE=8C=E6=95=B4=E4=B8=8B=E8=BD=BD=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daily/2026-06-20.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 daily/2026-06-20.md diff --git a/daily/2026-06-20.md b/daily/2026-06-20.md new file mode 100644 index 0000000..ed4bb18 --- /dev/null +++ b/daily/2026-06-20.md @@ -0,0 +1,45 @@ +# 2026-06-20 Audiobookshelf 部署 + 章节排序经验 + +## Audiobookshelf 部署 + +- Docker 容器:ghcr.io/advplyr/audiobookshelf:latest (v2.35.1),端口 13378 +- docker-compose 管理,路径:`/home/ubuntu/audiobookshelf/` +- Caddy 反代:podcast.xybkwd.top +- 数据目录:config/ metadata/ audiobooks/ podcasts/ + +## 章节排序三层同步铁律 + +Audiobookshelf 的章节显示依赖三层数据: + +| 层 | 数据位置 | 关键字段 | +|:---|:---|:---| +| 文件系统 | 文件名 `01-标题.mp3` | 数字前缀保证字母序 | +| books.chapters (SQLite) | JSON 数组 | `start` 时间戳递减 | +| books.audioFiles (SQLite) | JSON 数组 | `index` 顺序递增 | + +**只改文件名不生效**,必须三条线同步。 + +## 完整工作流 + +``` +yt-dlp 下载 → --print upload_date 获取发布时间 + → 按 upload_date 排序 → 生成 01~N 前缀 + → 重命名 01-源端完整标题.mp3 + → 放入 /home/ubuntu/audiobookshelf/audiobooks/专辑名/ + → watcher 自动检测(不重启容器) + → 验证 chapters.start + audioFiles.index 顺序正确 +``` + +## B站下载要点 + +- 需 cookies 认证(从本地 Firefox cookies.sqlite 提取 → SCP 上传 /tmp/bilibili_cookies.txt) +- B站无纯音频流,用 `-f worstvideo+worstaudio/worst -x` 最小化下载量 +- 每集 ~40-50MB(音频),下载速度 6-14 MB/s(日本 CDN 节点) +- 服务器带宽 1.5TB/月,完全够用 + +## 踩坑记录 + +1. `rm` 数据库必须先问用户 - 造成账号数据丢失 +2. Audiobookshelf 章节排序不是靠文件名,是靠 start 时间戳 +3. 操作文件前不要盲目 rm,先用 ls 确认 +4. 容器不需要频繁重启,watcher 会自动检测文件变化