群晖NAS使用最新calibre-web并配置豆瓣元数据

2022-08-10
最新V0.6.19版本的calbire-web的豆瓣插件已经回来了,除了标签外,应该都有数据了,可以不用此插件了

最新版calibre-web(0.6.14)已经移除了豆瓣元数据接口,而且把元数据接口从javascript文件移动到了服务器中,使用python开发。

下载安装calibre-web

这里选择使用linuxserver/calibre-web,以前使用的technosoft2000/calibre-web已经不怎么更新:

IMPORTANT: Hello together, since I have almost no time to maintain this project anymore, I hereby discontinue it and recommend you to switch to the better maintained image of linuxserver/calibre-web. Btw. thank you to @OzzieIsaacs and his team that they still work on Calibre Web to make it better and still adding additional features over such a long time

群晖系统中,打开Docker套件,在注册表中搜索calibre-web,并选择对应的镜像下载:

下载后在映像中选择对应的容器,点启动就可以开始配置了

配置calibre-web

配置calibre-web之前,建议先把豆瓣api provider下载下来。

下载calibre-web豆瓣provider

​ 豆瓣api很早以前就已经不开放给个人用户使用了,目前的豆瓣API provider是自己开发的,使用python从豆瓣网站上抓取网页并解析成对应格式数据的方式实现。

​ 以前开发了一个Java版本(https://github.com/fugary/simple-boot-douban-api
豆瓣api镜像发布到Docker仓库可以启动后供javascript调用,但是新版calibre-web不再使用javascript调用外部服务的方式获取元数据,因此根据calibre-webmetadata_provider规范开发了python版本并开源到Github上:

Github地址:https://github.com/fugary/calibre-web-douban-api

使用方式是复制src/NewDouban.pycalibre-web/cps/metadata_provider/目录下,重启项目即可,不过在群晖Docker环境下可以在下载后简单通过挂接的方式把文件直接挂接过去。

下载文件地址:https://github.com/fugary/calibre-web-douban-api/releases/latest/download/NewDouban.py

代理下载地址:https://ghproxy.com/https://github.com/fugary/calibre-web-douban-api/releases/latest/download/NewDouban.py

下载后存到自己的群晖中,我目前存储在/docker/calibre/NewDouban.py

配置calibre-web

在【映像】中选择对应的容器,点【启动】,然后【高级设置】:

一般都要勾选【启用自动重新启动】

配置存储空间,这块很重要

配置装载路径

本地路径 容器路径 说明
docker/calibre/NewDouban.py /app/calibre-web/cps/metadata_provider/NewDouban.py 下载好的豆瓣provider
本地书籍目录 /books 可能需要一个初始metadata.db文件,如果第一次使用可以从这下载一个空的:https://gitee.com/qs/calibre-web-douban-api/blob/main/tests/metadata.db
本地配置目录 /config 配置目录

配置端口映射:

配置一些环境变量,语言可以不改,建议增加一个时区:TZ=Asia/Shanghai:

点击【应用】,下一步直到完成启动。

查询元数据

启动完成后可以访问:http://nas_ip:8083
可以登录,默认用户名密码:admin/admin123

新增书籍后可以查询元数据了:

目前的源是:New Douban Books。

常见问题

最近有不少网友说查询的时候卡死,其实是因为内置的google和scholar等其他元数据provider引起的。

要解决这个问题可以以下方案:

  1. 考虑配梯子等访问外网,并去掉google等元数据选项。
  2. 直接通过挂接覆盖原来的元数据文件夹,不过这样就只有豆瓣搜索了。

挂接元数据文件夹(NewDouban.py就在docker/calibre目录下):

本地路径 容器路径 说明
docker/calibre /app/calibre-web/cps/metadata_provider 下载好的豆瓣provider所在目录

通过目录挂接之后就不用再挂接docker/calibre/NewDouban.py文件了。

注意:最新0.6.17和0.6.16元数据API不兼容,请注意下载对应的版本

评论

  1. F
    9月前
    2021-11-03 21:42:56

    手工点赞

  2. F
    9月前
    2021-11-03 22:31:31

    安装完成一切顺利,但是douban的插件不起作用。
    一直显示:
    加载中…
    搜索错误!!
    搜索错误!!
    搜索错误!!
    搜索错误!!
    搜索错误!!
    搜索错误!!

    搜索错误!!

    之前用technosoft2000版本的时候,起码其他元数据搜索是通的,现在看似几个信源都失效了
    我的环境也是群辉Docker
    我把
    NewDouban.py
    本地书籍目录
    本地配置目录
    都放在一个文件下了。
    看log,有下载成功过,但是前台一直没显示过。

  3. F
    9月前
    2021-11-04 15:10:32

    看起来是不稳定或者组件没下载完整,隔了一天试了试douban信源又显示了。就是在保存的时候明显会卡顿一下

  4. cc
    9月前
    2021-11-05 16:00:20

    我是按照这个教程一步步做的,只是每次打开编辑源数据,都会遇到不能保存卡死的情况。博主帮忙看看,可能是遇到什么问题了?谢谢。

    • F
      cc
      9月前
      2021-11-19 15:49:29

      我也是,很烦。看log,“下载书籍成功xxxxx”但是界面没显示,只说错误。

    • 草履虫
      cc
      已编辑
      7月前
      2022-1-08 13:51:28

      我 0.6.14 也有一样的问题。telnet web 端口都不通,像是 web 服务挂了,只能重启容器。日志里倒是看到了报错
      Exception WebDriverException while fetching page: (“‘geckodriver’ executable needs to be in PATH.”,)
      解决办法:

      1. 将/app/calibre-web/cps/metadata_provider下的默认几个py重命名comicvine.py.bak google.py.bak scholar.py.bak
      2. 重启容器
  5. gary
    博主
    9月前
    2021-11-19 18:05:52

    如果是有时候下载失败,有时候成功,失败时浏览器开发者工具可以看到400错误,可能是目前calibre-web的0.6.14版的bug,退出重新登录又好了,似乎是新加的CSRFToken问题

    • neo
      gary
      已编辑
      9月前
      2021-11-20 5:58:34

      又可以了

  6. F
    9月前
    2021-11-22 0:48:24

    反复测试:0.6.14 机会出现卡死问题,重复登录也会卡死,建议大家先用稳定的版本。
    退回0.6.13版本,就用不了这个py了,可惜。

  7. LL
    8月前
    2021-12-06 0:01:30

    确实能用,很好用。。。可是为什么“保存”后,书的封面不会改变呢?我用的是technosoft的最新版。。

    • LL
      LL
      8月前
      2021-12-06 0:10:36

      奇怪,现在可以了

  8. clsdl
    8月前
    2021-12-08 11:22:11

    试过了 卡的很严重,日志显示下载成功。不知道大佬能不能解决一下,哪怕慢一点,只要不卡。

  9. bnab
    8月前
    2021-12-19 2:20:28

    安装最新版老提示数据库路径不对,大佬metadata.db下载失效了,能传个别的地址吗

    • gary
      博主
      bnab
      已编辑
      8月前
      2021-12-19 7:53:44

      已经补上了,其实使用桌面版calibre软件,然后新建一个书库,文件夹里面就有metadata.db,如果本地已经使用calibre桌面版管理书籍,书籍文件夹是可以和calibre-web共用。

  10. brian
    7月前
    2022-1-04 16:33:13

    0.6.15 Beta版好像不行,直接卡死

    • geng
      brian
      7月前
      2022-1-05 13:48:19

      按教程安装后,只要点击获取元数据就卡住, 且无法获取到信息,然后整个软件都卡死了。然后就GG了,。 只能重启docker。 这是啥情况。太愁人了~~~

  11. geng
    7月前
    2022-1-05 13:48:39

    按教程安装后,只要点击获取元数据就卡住, 且无法获取到信息,然后整个软件都卡死了。然后就GG了,。 只能重启docker。 这是啥情况。太愁人了~~~

  12. Sebastronne
    7月前
    2022-1-06 10:56:10

    大佬,20220106测试无法安装
    群晖docker很像无法正常通过挂载的方式把python文件挂进去,只要添加了那一条挂载信息calibre-web就无法正常使用(无法打开网页)
    把文件复制进去也试过了,同样无法打开网页

    • Cracker
      Sebastronne
      6月前
      2022-2-27 11:50:52

      解决了吗,我的也是这样。

  13. tonie
    7月前
    2022-1-13 18:24:07

    我也是群晖,用不了。。。挂进去网页打不开,显示被重置或很忙。。。日志里有syntax invalid之类的错误。

  14. Jecvay
    7月前
    2022-1-19 3:22:36

    我擦,,这个太牛逼了,这个东西是神器啊,好用好用 (๑•̀ㅁ•́ฅ) 非常感谢!

  15. SP
    7月前
    2022-1-27 10:28:38

    完全遵照教程,第一次fetch卡死,重启docker后正常获取douban,但是没有封面,如何操作?谢谢大神!!

  16. INKI
    6月前
    2022-2-08 21:51:36

    20220208测试,使用的是technosoft2000的calibre-web,完全按照教程添加相应文件,已经卡住了,只要打开获取元数据,必卡住不动,只能重启容器。求解决方案

    • 没得手机
      INKI
      6月前
      2022-2-13 1:35:42

      挂个捞梯子就ok了,应该是访问不到就卡住了。

  17. zyrise
    已编辑
    6月前
    2022-2-13 10:59:31

    大家都在什么版本下可以用啊?之前可以用,但最近升级到0.6.16后就不能用了,在搜索界面没有new douban books的选项了,停止容器,将NewDouban.py文件拷贝到metadata_provider文件夹下,再启动容器,发现无法打开calibre web页面,而删除NewDouban.py后,则可以正常打开页面。请教大家有没遇到这个问题,要怎么解决办法啊?谢谢

    • 没得手机
      zyrise
      6月前
      2022-2-13 16:22:03

      也是6.16,最方便的解决办法,先用梯子查询一本书的信息,再把谷家的选择全部取消掉,后面就自动豆瓣了。

  18. zyrise
    6月前
    2022-2-26 15:01:39

    能说具体点吗?我是部署在群晖docker里面的,只要一挂载“NewDouban.py”,就无法打开网页了,谢谢

    • gary
      博主
      zyrise
      6月前
      2022-2-26 16:02:36

      可以尝试按照(常见问题),挂接目录进去试试看

  19. zyrise
    已编辑
    6月前
    2022-2-27 16:33:27

    我的运行环境是群晖DSM7.0,安装在docker下面。按照您的常见问题说明,试了挂接NewDouban.py文件或其所在目录,但启动容器后,均是无法打开页面,提示无法与服务器建立安全连接。发现容器的日志多了以下提示:
    File “/app/calibre-web/cps.py”, line 40, in
    from cps.search_metadata import meta
    File “/app/calibre-web/cps/search_metadata.py”, line 48, in
    importlib.import_module(“cps.metadata_provider.” + a)
    File “/usr/lib/python3.8/importlib/init.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “/app/calibre-web/cps/metadata_provider/NewDouban.py”, line 7
    <!DOCTYPE html>
    ^
    SyntaxError: invalid syntax

    • gary
      博主
      zyrise
      6月前
      2022-2-27 16:40:21

      SyntaxError: invalid syntax一般都是下载的文件格式不正确,需要下载原始文件,内容为python代码的文件,打开看到有html之类的就是不正确的

      • zyrise
        gary
        6月前
        2022-2-27 23:14:56

        真是太感谢博主了,终于搞定了,原来一直使用链接另存的方式下载NewDouban.py文件,导致下载的文件不正确,挂接以后容器运行出错。重新正确下载NewDouban.py文件后,顺利搞定,再次感谢。

  20. Rexved
    5月前
    2022-3-05 22:16:04

    你好,我想问一下为什么我在calibre-web获取的信息的description除了简介外还有其他乱七八糟的东西比如话题、书评什么的,但是我单独运行您的python文件,获取打印description就只用简介,就觉的很奇怪,能回复一下嘛,谢谢

  21. cc
    5月前
    2022-3-11 9:57:18

    求教,下载了最新版的NewDouban.py,是22.3.10更新的。
    按照教程操作,出现了New Douban Books的选项。但不能搜刮,提示“搜索错误!!加载中…”。
    页面没有卡死,用梯子Amazon和Google都可以正常查到。
    我换了technosoft2000和linuxserver这2个最新版,都不行。也都是“搜索错误!!加载中…”。
    电脑端桌面版的豆瓣插件,可以正常。
    查了PY代码,直接浏览https://www.douban.com/j/search,会提示{“items”:[],”total”:0,”limit”:20,”more”:false}。
    请问是怎么办?

  22. albicocca
    4月前
    2022-4-25 11:45:34

    大佬还维护docker版的更新吗,docker停留在半年前了,别的版本不太会用。。。

    • gary
      博主
      albicocca
      4月前
      2022-4-25 12:16:24

      calibre-web新版本不能用docker版了,升级calibre-web后只能用新的

      • albicocca
        gary
        4月前
        2022-4-25 15:52:07

        老大这么一说我才发现我用的calibre确实不是最新版,那老版本可以用新插件吗,还是说必须老版本老插件、新版本新插件呢

        • gary
          博主
          albicocca
          4月前
          2022-4-25 16:01:01

          老版本不能用新插件,新版本也用不了老的方式,不然没必要开发新的

          • albicocca
            gary
            4月前
            2022-4-25 16:29:30

            谢谢大佬,帮我顺腾摸瓜解决了个迷茫的问题。。。我说我的calibre为什么不是最新版,检查了下docker的源发现网上说utsc的源有问题不建议用,我的源里utsc是第一个。。。换了就能更新到最新版了,我改用新版插件吧,顺便吐槽一下OMV小问题太多了,我有点受不了了

          • albicocca
            gary
            已编辑
            4月前
            2022-4-25 22:29:36

            搞好了,不同的calibre版本metadata_provider路径可能不一样,我用版本是在/usr/local/calibre-web/app/cps/metadata_provider,一开始没发现,有点坑

  23. 请教
    2月前
    2022-6-16 10:22:30

    大佬,请教一下,我用的是群晖上johngong的最新docker版本,calibre-web版本是0.6.18,然后在metadata_provider文件夹里把别的文件全部删除,只留了NewDouban.py一个文件,刮削的时候有NewDoubanBooks的选项,但是搜出来一直是空白页,请问有可能是哪里出了问题?

    • gary
      博主
      请教
      2月前
      2022-6-16 10:42:43

      这样描述看不出来,需要有日志才好判断

      • 请教
        gary
        已编辑
        2月前
        2022-6-16 11:02:21

        我复制了后面的部分,麻烦大佬帮忙看看
        [2022-06-16 10:07:58,844] ERROR {cps:1457} Exception on /metadata/search [POST]
        Traceback (most recent call last):
        File “/usr/lib/python3.9/site-packages/flask/app.py”, line 2073, in wsgi_app
        response = self.full_dispatch_request()
        File “/usr/lib/python3.9/site-packages/flask/app.py”, line 1518, in full_dispatch_request
        rv = self.handle_user_exception(e)
        File “/usr/lib/python3.9/site-packages/flask/app.py”, line 1516, in full_dispatch_request
        rv = self.dispatch_request()
        File “/usr/lib/python3.9/site-packages/flask/app.py”, line 1502, in dispatch_request
        return self.ensure_sync(self.view_functions[rule.endpoint])(*req.view_args)
        File “/usr/lib/python3.9/site-packages/flask_login/utils.py”, line 272, in decorated_view
        return func(
        args, **kwargs)
        File “/usr/local/calibre-web/app/cps/search_metadata.py”, line 141, in metadata_search
        data.extend([asdict(x) for x in future.result()])
        TypeError: ‘NoneType’ object is not iterable
        [2022-06-16 10:12:27,778] WARN {cps.metadata_provider.douban:86} 403 Client Error: Forbidden for url: https://sec.douban.com/b?r=https%3A%2F%2Fwww.douban.com%2Fj%2Fsearch%3Fcat%3D1001%26q%3D%25E4%25BB%25A5%25E5%2588%25A9%25E4%25B8%25BA%25E5%2588%25A9
        [2022-06-16 10:12:27,778] ERROR {cps:1457} Exception on /metadata/provider/douban [POST]

        • gary
          博主
          请教
          2月前
          2022-6-16 11:15:05

          这个是通过网页的形式获取数据的,你这个是豆瓣拦截了,可以考虑等一段时间或者重连下路由宽带换一个ip地址

          • 请教
            gary
            2月前
            2022-6-16 11:18:28

            好的,谢谢大佬!
            另外在请教一个问题,我是把calibre_web部署在家里的nas上,在单位访问的网页版。这种情况下我被拦截的ip是我nas的ip还是我在单位的ip?

          • gary
            博主
            请教
            2月前
            2022-6-16 12:26:55

            是nas的IP

          • 请教
            gary
            2月前
            2022-6-16 12:35:40

            感谢!

          • 请教
            gary
            2月前
            2022-6-16 15:20:38

            大佬,又出现新问题:[2022-06-16 15:16:36,750] INFO {flask_wtf.csrf:263} The CSRF token has expired.这个应该怎么处理?

          • gary
            博主
            请教
            2月前
            2022-6-16 15:46:53

            这个应该不是插件问题了,是calibre-web的问题,可以尝试换个浏览器试试,不行的话重启下calibre-web容器试试看

          • 请教
            gary
            已编辑
            2月前
            2022-6-16 16:25:06

            大佬,抱歉,一直打扰。我换了个浏览器就可以搜索出内容了,但是封面都不显示,选择其中任何一个都没有元数据,见下图,能否再指教一下?log里没有新增的报错内容。


            查看图片
            JX64BIH272ULX8EKUL.png

          • gary
            博主
            请教
            2月前
            2022-6-16 16:35:07

            这个是本地浏览器显示的,可以把地址复制出来访问下看看,也可以尝试下选一个保存看看是否保存进去了

          • 请教
            gary
            2月前
            2022-6-16 16:40:32

            我选任何一个都没有任何元数据增加进去,换了好几本书搜索结果都一样。你说的地址是什么地址?图片的地址是:http://我的域名/usr/local/calibre-web/app/cps/static/generic_cover.jpg,源的地址是:https://book.douban.com/

          • gary
            博主
            请教
            2月前
            2022-6-16 17:22:56

            如果外网能访问,可以开个测试账号帮你看看,没有其他日志的话看不出什么问题

          • 请教
            gary
            2月前
            2022-6-16 20:23:08

            换了linuxserver/calibre-web就好了,谢谢大佬!

  24. 66666
    3周前
    2022-7-19 16:42:08

    很强很好用 0.6.18 豆瓣有结果

  25. warmmer
    3周前
    2022-7-26 0:02:19

    你好,我在下载元数据的时候文字的内容都正常,只是图片不能下载,好像是python的问题,报错:Python modul ‘advocate’ is not installed but is needed for cover downloads

    • warmmer
      warmmer
      3周前
      2022-7-26 0:37:23

      通过这个解决了,给需要的朋友吧,谢谢。https://zhuanlan.zhihu.com/p/517229626

  26. ham
    2天前
    2022-8-10 15:47:40

    大佬,请问下为什么ISBN号好像没办法自动抓取么

    • gary
      博主
      ham
      2天前
      2022-8-10 17:41:50

      ISBN号是可以抓取的,不过需要把ISBN手动填到搜索框,calibre-web只传了一个数据到后台

  27. gary
    博主
    已编辑
    2天前
    2022-8-10 17:51:44

    最新V0.6.19版本的calbire-web的豆瓣插件已经回来了,除了标签外,应该都有数据了,可以不用此插件了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇