KOMGA 搭建使用和格式转换EPUB
KOMGA 是一个自托管的 漫画/电子书管理系统,类似于 Jellyfin 之于电影,支持 网页、手机、平板等设备 访问,适合管理本地漫画资源。
Komga 主要支持以下几种格式:
- CBZ (Comic Book Zip)
- CBR (Comic Book Rar)
- EPUB
- CB7 (Comic Book 7z)
- ComicBook Archive (ZIP/RAR/7z等归档格式)
🛠 KOMGA Docker-Compose 搭建
1️⃣ 编写 docker-compose.yml
在服务器上创建 docker-compose.yml
文件,并填入以下内容:
version: "3.8"
services:
komga:
image: gotson/komga:latest
container_name: komga
restart: unless-stopped
ports:
- "25600:25600"
environment:
- TZ=Asia/Shanghai # 时区
volumes:
- /你的路径/config:/config # 配置存储
- /你的路径/komga:/data # 你的漫画存放目录
2️⃣ 运行容器
在 docker-compose.yml
所在目录,运行:
docker-compose up -d
容器启动后,访问 http://服务器IP:8080
进行管理。
📌 额外配置
🔹 设置用户密码
默认情况下,KOMGA 无需登录。如果你希望设置 用户认证,可以:
- 首次访问
http://服务器IP:8080
- 在 设置 中 创建管理员账户
📌 其他功能
✅ 支持 EPUB、CBZ、CBR 格式漫画
✅ 自动扫描新增漫画
✅ 支持 Web 端 & 移动端阅读
✅ 支持 OPDS,配合第三方 APP 使用
💡 适合搭建在 NAS 或服务器上,配合 Jellyfin、Alist,打造全家桶! 🚀
https://kxo.moe/ 下载限制
可以用 Python 来将 MOBI 文件转换为 EPUB 文件。有几个库可以帮助你完成这个任务,其中最常用的是 ebooklib
和 calibre
的命令行工具(如果已安装 Calibre)。
方法一:使用 calibre
的命令行工具 (推荐)
如果你的系统上已经安装了 Calibre,最简单的方法是使用它的命令行工具 ebook-convert
。这是一个非常强大的转换工具,支持各种格式之间的转换。
下载地址:https://calibre-ebook.com/
import subprocess
import os
def convert_mobi_to_epub_calibre(mobi_path, epub_path):
"""
使用 Calibre 的 ebook-convert 命令行工具将 MOBI 转换为 EPUB。
Args:
mobi_path: MOBI 文件的路径。
epub_path: 输出 EPUB 文件的路径。
"""
try:
if not os.path.exists(mobi_path):
raise FileNotFoundError(f"MOBI file not found: {mobi_path}")
subprocess.run(['ebook-convert', mobi_path, epub_path], check=True, capture_output=True)
print(f"Successfully converted {mobi_path} to {epub_path}")
except subprocess.CalledProcessError as e:
print(f"Error during conversion: {e.stderr.decode()}")
except FileNotFoundError as e:
print(e)
except Exception as e:
print(f"An unexpected error occurred: {e}")
# 示例用法:
convert_mobi_to_epub_calibre('input.mobi', 'output.epub')
使用遍历文件,批量转换,然后删除源文件
import subprocess
import os
def convert_mobi_to_epub_calibre(mobi_path, epub_path):
"""
使用 Calibre 的 ebook-convert 命令行工具将 MOBI 转换为 EPUB。
Args:
mobi_path: MOBI 文件的路径。
epub_path: 输出 EPUB 文件的路径。
"""
try:
if not os.path.exists(mobi_path):
raise FileNotFoundError(f"MOBI file not found: {mobi_path}")
subprocess.run(['ebook-convert', mobi_path, epub_path], check=True, capture_output=True)
print(f"Successfully converted {mobi_path} to {epub_path}")
return True
except subprocess.CalledProcessError as e:
print(f"Error during conversion: {e.stderr.decode()}")
except FileNotFoundError as e:
print(e)
except Exception as e:
print(f"An unexpected error occurred: {e}")
# input_path = r"Z:\share\komga\金田一少年事件簿第一部明智系列\[Vol.moe][金田一少年事件簿第一部明智系列]優雅犀利事件簿.mobi"
# output_path = r"Z:\share\komga\金田一少年事件簿第一部明智系列\[Vol.moe][金田一少年事件簿第一部明智系列]優雅犀利事件簿.epub"
# 示例用法:
main_path = r'Z:\share\komga'
for root, dirs, files in os.walk(main_path):
for file in files:
if file.endswith('.mobi'):
mobi_path = os.path.join(root, file)
epub_path = os.path.splitext(mobi_path)[0] + '.epub'
ret = convert_mobi_to_epub_calibre(mobi_path, epub_path)
if ret:
os.remove(mobi_path)
方法二: 使用PyMuPDF
import fitz
def convert_mobi_to_epub_with_pymupdf(mobi_path, epub_path):
doc = fitz.open(mobi_path)
doc.save(epub_path, garbage=4, deflate=True)
doc.close()
convert_mobi_to_epub_with_pymupdf("in.mobi", "out.epub")
解释和建议:
- Calibre 命令行 (推荐): 这是最简单、最可靠的方法。Calibre 在处理电子书格式方面非常出色,转换质量通常很高。
- PyMuPDF (简单,但可能有局限): PyMuPDF可以打开MOBI文件, 并直接另存为EPUB. 但转换效果可能不如Calibre.
- 安装:
ebooklib
:pip install ebooklib
calibre
: 从 Calibre 官网下载并安装 (https://calibre-ebook.com/)- PyMuPDF:
pip install pymupdf
总结:
如果已安装Calibre,强烈推荐使用 ebook-convert
命令行工具。如果没有安装Calibre, 可以使用PyMuPDF。如果需要对转换过程有更精细的控制,或者有特殊需求,可以考虑使用 ebooklib
,但需要更多的工作。
本文作者: 永生
本文链接: https://www.yys.zone/detail/?id=387
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
评论列表 (0 条评论)