常见问题
本文档收集了用户在使用 OpenList to Stream 过程中遇到的常见问题和解决方案。
🚀 版本升级问题
Q: V1 升级到 V2 版本后无法启动?
A: V2.0.0 是重大架构更新,不支持直接升级,需要手动迁移数据。
问题症状:
- 容器启动后立即退出
- 数据库连接失败
- 配置文件无法读取
- 日志显示路径错误
解决方法:
📋 迁移步骤
- 停止旧版本容器
docker-compose down挂载目录调整 按照以下步骤复制数据到新的挂载目录:
迁移数据库文件
# 原 /app/data/config/db 目录下的所有 db 文件复制到新的挂载目录下的 /maindata/db 下
cp ./data/config/db/* ./data/db/- 迁移日志文件
# 原 /app/data/log 目录下的 log 文件复制到新的挂载目录下的 /maindata/log
cp ./data/log/* ./logs/- 迁移配置文件
# 原 /app/data/config 目录下的所有 json 文件复制到新的挂载目录下的 /maindata/config 下
cp ./data/config/*.json ./data/config/- 启动容器
docker-compose up -d🔍 关键路径变更对比
| 文件类型 | 旧路径 (V1) | 新路径 (V2) |
|---|---|---|
| 数据库文件 | /app/data/config/db/ | /maindata/db/ |
| 配置文件 | /app/data/config/ | /maindata/config/ |
| 日志文件 | /app/data/log/ | /maindata/log/ |
| STRM 文件 | /app/backend/strm/ | /app/backend/strm/ (不变) |
⚠️ 重要注意事项
- 手动迁移: 必须手动复制数据文件,不能自动升级
- 路径变更: 容器内路径结构完全重新设计
- 配置更新: 使用新的环境变量配置方式
🔧 故障排除
如果迁移后仍有问题:
- 检查容器日志
docker logs ostrm- 验证数据完整性
# 检查文件是否正确迁移
ls -la ./data/db/
ls -la ./data/config/
ls -la ./logs/- 确认目录权限
chmod -R 755 ./data ./logs ./strm💡 为什么需要手动迁移?
V2.0.0 版本进行了以下重大改进:
- 🏗️ 架构重构: 大量代码重构,提升系统稳定性
- 🐳 容器优化: 改进 Docker 构建,使用 Ubuntu 22.04 基础镜像
- 📁 路径标准化: 统一容器内路径管理,增强跨平台兼容性
- 🔧 依赖更新: 升级到 Java 21 运行时环境
这些改进虽然带来了更好的性能和兼容性,但也导致了数据结构的重大变化,因此需要手动迁移以确保数据安全。
📄 字幕文件问题
Q: 字幕文件没有下载?
A: 字幕文件下载失败可能有以下原因:
未开启配置
- 确认已开启「保留字幕文件」选项
- 在系统设置或任务配置中检查此选项
OpenList 中不存在字幕文件
- 确认 OpenList 目录中确实存在字幕文件
- 检查字幕文件格式是否支持
字幕格式不支持
- 系统支持以下格式:
.srt、.ass、.vtt、.ssa、.sub、.idx - 其他格式不会被识别和下载
- 系统支持以下格式:
网络问题
- 检查与 OpenList 服务器的网络连接
- 查看执行日志中的具体错误信息
权限问题
- 确认输出目录有写入权限
- 确认 OpenList 访问令牌有读取权限
Q: 字幕文件重复下载?
A: 系统默认会过滤已下载的字幕文件。如果出现重复:
- 检查是否有多个相同名称的字幕文件
- 查看日志确认是否真的重复下载
- 手动清理后重新执行任务
Q: 字幕文件下载后找不到?
A: 字幕文件默认保存在与 STRM 文件相同的目录下:
- 检查 STRM 文件同级目录
- 确认字幕文件名与视频文件名匹配
- 查看任务执行日志确认下载路径
Q: 包含中文的字幕文件名无法下载?
A: 系统已内置 URL 编码支持:
- 确认使用的是最新版本
- 在系统设置中开启「URL 编码」选项
- 查看日志确认编码是否正确处理
🖼️ 图片文件问题
Q: 图片文件没有下载?
A: 图片文件下载失败可能有以下原因:
未开启配置
- 确认已开启相关刮削选项
- 检查「使用已有刮削信息」设置
图片下载优先级问题 系统支持三级下载优先级:
- 第一级:本地是否存在
- 第二级:OpenList 下载
- 第三级:TMDB 刮削
如果前两级找到文件,就不会进行第三级刮削。
OpenList 中不存在图片文件
- 确认 OpenList 目录中确实存在图片文件
- 检查图片格式是否支持:
.jpg、.jpeg、.png、.webp、.bmp
图片命名不符合规范
- 标准命名:
{baseFileName}-poster.jpg、{baseFileName}-fanart.jpg、{baseFileName}-thumb.jpg - 系统也支持任意命名图片的降级策略
- 标准命名:
TMDB API 问题
- 确认 TMDB API 密钥已配置
- 检查网络连接是否正常
- 确认 API 配额是否用完
Q: 海报图片和背景图有什么区别?
A: 不同类型的图片用途不同:
- 海报图片 (-poster.jpg):用于媒体库的封面展示
- 背景图 (-fanart.jpg):用于媒体库的背景展示
- 缩略图 (-thumb.jpg):用于剧集的缩略图展示
Q: 不想使用 OpenList 中的图片,直接刮削怎么办?
A: 可以通过以下方式:
- 不开启「使用已有刮削信息」选项
- 或者删除 OpenList 中已有的图片文件
- 系统会自动降级到 TMDB 刮削
Q: 图片文件下载后文件名为乱码?
A: 这是 URL 编码导致的问题:
- 确认使用的是最新版本
- 系统会自动处理 URL 编码
- 如果仍有问题,查看日志并提交 Issue
🔧 任务执行问题
Q: 任务执行很慢怎么办?
A: 可以尝试以下优化:
启用增量更新模式
- 只处理新增或修改的文件
- 避免重复刮削
减少并发任务数
- 在系统设置中调整并发数量
开启本地优先模式
- 开启「使用已有刮削信息」
- 开启「保留字幕文件」
检查网络连接
- 确保网络连接稳定
- 考虑配置代理
分批处理
- 将大量文件分成多个任务
Q: 任务执行失败怎么办?
A: 按以下步骤排查:
查看执行日志
- 定位具体的错误信息
- 记录错误发生的文件
检查文件权限
- 确认输出目录可写
- 确认 OpenList 可访问
检查网络连接
- 测试 OpenList 连接
- 测试 TMDB API 连接
检查文件格式
- 确认视频格式支持
- 确认文件名没有特殊字符
重试任务
- 修正问题后重新执行
- 开启「失败重试」选项
Q: 如何查看详细的执行日志?
A: 有多种方式查看日志:
Web 界面查看
- 访问「日志」页面
- 按任务、级别、时间筛选
容器日志
docker logs ostrm- 本地日志文件
- 查看
./logs/目录下的日志文件
- 查看
📊 刮削问题
Q: 刮削功能不工作?
A: 检查以下几点:
TMDB API 配置
- 确认 API 密钥已配置
- 验证 API 密钥是否有效
网络连接
- 测试是否能够访问 TMDB
- 考虑配置代理
刮削开关
- 确认已开启刮削功能
- 确认相关选项已配置
文件命名
- 确保文件名规范
- 尝试使用 AI 识别辅助
Q: 刮削结果不准确?
A: 可以尝试以下方法:
改进文件名
- 使用规范的文件命名
- 包含年份、季集等信息
使用 AI 识别
- 开启 AI 识别功能
- 提供更准确的匹配
手动刮削
- 对于重要文件,可以手动刮削
- 系统会保存手动刮削结果
检查语言设置
- 确认刮削语言设置正确
- 尝试切换语言重新刮削
💾 存储问题
Q: 存储空间不足怎么办?
A: 可以尝试以下方法:
清理孤立文件
- 系统会自动清理
- 也可以手动执行清理
减少刮削内容
- 只刮削必要的文件
- 关闭不需要的刮削选项
使用增量更新
- 避免重复处理
外接存储
- 将 STRM 文件存储到外接存储
Q: 如何备份数据?
A: 有多种备份方式:
- 使用备份脚本
./dev-docker.sh backup- 手动备份
# 备份数据库
cp ./data/db/openlist2strm.db ./backup/
# 备份配置
cp ./data/config/*.json ./backup/
# 备份 STRM 文件
cp -r ./strm ./backup/- Docker 卷备份
docker run --rm -v ostrm_data:/data -v $(pwd)/backup:/backup alpine tar czf /backup/ostrm-data.tar.gz -C /data .🌐 网络问题
Q: 无法连接 OpenList 服务器?
A: 检查以下几点:
服务器地址
- 确认地址正确
- 包含正确的端口号
网络连接
- 测试网络连通性
- 检查防火墙设置
Token 有效性
- 确认 Token 未过期
- 确认 Token 权限足够
SSL 证书
- 如果使用 HTTPS,确认证书有效
- 考虑添加信任证书
Q: TMDB API 无法访问?
A: 可以尝试以下方法:
检查 API 密钥
- 确认密钥正确
- 确认密钥未过期
网络代理
- 配置 HTTP 代理
- 在系统设置中填入代理地址
网络环境
- 检查网络是否能够访问 TMDB
- 考虑使用 VPN
📞 获取帮助
问题未解决?
如果按照迁移指南操作后仍有问题:
收集信息
- 记录具体的错误信息
- 提供完整的操作步骤
- 包含容器启动日志
寻求帮助
- 🐛 提交 GitHub Issue
- 💬 在 GitHub Discussions 中讨论
参考文档
重要提醒: 升级前请务必备份数据,严格按照迁移指南操作,避免数据丢失。