Calibre Server

Door Mar2zz op zaterdag 12 november 2011 12:42 - Reacties (20)
Categorie: Calibre, Views: 12.826

Naast films, tvshows en muziek is er natuurlijk ook nog digital entertainment op het gebied van boeken. Lezen is geweldig en als je voorstellingsvermogen een beetje geoefend is dan is lezen de immense 3D ervaring die gelijk staat aan avonturen beleven op Star Treks Holodeck.

Een ereader is zo een apparaat waardoor je, op het moment dat je hem voor het eerst aanschaft en in handen hebt, jezelf voor de kop slaat omdat je dat niet (jaren) eerder hebt gedaan. De leeservaring daarop is bijna gelijk aan die van echte boeken lezen, tot en met het bedlampje dat aan moet blijven tot diep in de nacht aan toe. Daarnaast biedt een ereader natuurlijk ontzettend veel voordelen ten opzichte van echte boeken.

En voor alle blije ereader-bezitters is Calibre een must-have application, dit is de suite die je eigen e-bibliotheek op orde houdt en verrijkt met metadata zoals omslagen, flapteksten, waarderingen en meer. Het is als het ware de XBMC voor bibliofielen. En laat deze prachtige suite nu ook een mooie server functionaliteit hebben waarmee je je boeken kan hosten op je server, vanwaar ze bekeken en gedownload kunnen worden.

Calibre
Om Calibre server te installeren kun je in principe gewoon de versie uit je repo pakken met sudo apt-get install calibre. Of je installeert volgens de instructies op deze pagina: http://calibre-ebook.com/download_linux, als je repo een (voor jouw smaak) te oude versie heeft staan. Het lijkt overkill, een compleet programma installeren voor alleen het server gedeelte, alleen komen daardoor wel extra functies beschikbaar, zoals automatisch postprocessen (=ophalen metadata, hernoemen etc) van gedownloade ebookjes. Al moet ik me daar nog in verdiepen en nog een script voor schrijven, ik weet nu al dat dit heel veel gemak en plezier gaat opleveren. Ik zal deze blog uitbreiden met downloadlinks naar de postprocessingscripts zodra ik ze klaar heb.

Calibre is zo een programma dat volop in ontwikkeling is, elke maand 10 nieuwe features is dit programma niet vreemd. Het duikt dus ook met flinke regelmaat op in de meuktracker: meuk: Calibre 0.8.25. Omdat ik het wel prettig vind dat ik helemaal geen omkijken heb naar updates installeer ik het via apt, al zit die op 0.8.8 en loopt dus 17 versies achter. Maar dat is in Calibre-land nog niet eens een half jaar... In nieuwere versies zit soms wel ondersteuning voor nieuwere ereaders, dus mocht je een hele recente ereader hebben dan is het misschien wel aan te raden voor de bleeding-edge calibre te gaan via de downloadpagina van calibre zelf.

Calibre server
Om Calibre te starten met de server heb ik een init.d script geschreven wat e.e.a. uitvoert @ boot. Omdat ik onlangs voor CouchPotato, Headphones en SickBeard nieuwe initscripts heb geschreven waarbij de settings van de daemon gescheiden werden van het initscript zelf heb ik 1 van deze scripts omgezet naar een startscript voor Calibre Server. Het voordeel is dat het init-script gebruikt kan worden 'as is' en dat de settings dus vanuit een aparte file worden gelezen. Op Debian systemen staan deze files meestal in /etc/default/programmanaam, dus ik heb voor deze manier gekozen. De installatie wordt daarmee een stuk eenvoudiger en het persoonlijk maken van de settings is zo een eitje.

De install is daardoor als volgt samen te vatten vanuit een terminal:
sudo apt-get install calibre
sudo wget -O /etc/init.d/calibre-server http://dl.dropbox.com/u/18712538/calibre/calibre-init
sudo wget -O /etc/default/calibre-server http://dl.dropbox.com/u/18712538/calibre/calibre-default
sudo chmod +x /etc/init.d/calibre-server
sudo update-rc.d calibre-server defaults
# edit settings
sudo nano /etc/default/calibre-server
sudo /etc/init.d/calibre-server start


En hoppa, Calibre server draait default op http://serverip:8080 of op de poort die je hebt gezet in de settingsfile. Mocht je een setting vergeten zijn dan zal de terminal dat je vertellen, pas die dan aan in /etc/default/calibre-server. Ook deze settingsfile zal ik nog wat gaan uitbreiden, de belangrijkste opties zitten er nu in, maar er zijn er meer:
http://manual.calibre-ebook.com/cli/calibre-server.html

calibre server

Afsluiting:
In mijn geval ben ik al een paar keer tijd kwijt geweest aan het backuppen van al mijn ebookjes zodat deze reinstalls en dergelijke overleven. Dit komt omdat ik Calibre alleen op mijn desktop had draaien, waar het ook prima zijn werk doet. Maar nu heb ik maar besloten om de books te hosten op mijn servertje, welke ik zelden opnieuw installeer omdat deze moet doen wat ie doet, files serveren. Nu heb ik de serverfolder met ebooks gewoon gemount op de desktop zodat dat nog steeds kan, met de GUI van calibre kan ik dus prima metadata en dergelijke aanpassen van alle boeken die in mijn ebookfolder op de server verschijnen. Zoals gezegd, dat zou ook automagisch moeten kunnen, maar daar ga ik de komende tijd wel even mee aan de slag.

Hier staat in ieder geval meer over power through the cli: http://manual.calibre-ebook.com/cli/cli-index.html en al die command's laten zich natuurlijk prima vertalen naar een bashscript voor het postprocessen...

Postprocessen
Hoewel de documentatie van calibre-cli uitgebreid is is het wel lastig te gebruiken. Ik ben nu wel zover dat ik automatisch boeken kan laten toevoegen aan de gebruikte database. Nu nog met fetch-ebook-metadata automatisch laten verrijken... Ik heb een testscriptje geschreven waarmee boeken geimporteerd kunnen worden, wat ook door sabnzbd gebruikt kan worden.

Dat script is hier te downloaden, en kan dus als postprocessor gezet worden in sabnzbd voor de ebookcategorie, of handmatig gestart worden met ./fetchbook.sh '/pad/naar/boeken'.

Het resultaat:
mars@XBMC:~$ ./fetch_book.sh "/home/mars/Disk2/boektest/"

Totalbooks in library before: 0
Adding new books ...
4 new books added to /home/mars/Disk2/Ebooks

Listing new books ...

Robin Hobb - Tawny Man 03 Fool's Fate
Terry Pratchett - Discworld 24 The Fifth Elephant
Stieg Larsson - Gerechtigheid
Terry Goodkind - Sword of Truth 01 Wizard's First Rule

< ## >  Robin Hobb - Tawny Man 03 Fool's Fate  < ## >
Fetching metadata ...
No ISBN found, searching with Robin Hobb - Tawny Man 03 Fool's Fate ...
 * Done! Saved to /home/mars/Disk2/Ebooks/Robin Hobb/Tawny Man 03 Fool's Fate (2)/metadata.opf

Fetching cover ...
No cover found
* Fail!
Add new metadata to database ...
Title               : Fools Fate :Tawny Man 03
Title sort          : Fools Fate :Tawny Man 03
Author(s)           : Robin Hobb [Hobb, Robin]
Publisher           : BANTAM BOOKS
Tags                : LaSi 20111122
Series              : Tawny Man #3
Languages           : eng
Timestamp           : 2011-11-22T19:14:42+00:00
Published           : 2004-11-22T00:00:00+00:00
Identifiers         : amazon:B000TMRW5U
Backing up metadata
Notifying calibre of the change

< ## >  Terry Pratchett - Discworld 24 The Fifth Elephant  < ## >
Fetching metadata ...
No ISBN found, searching with Terry Pratchett - Discworld 24 The Fifth Elephant ...
 * Done! Saved to /home/mars/Disk2/Ebooks/Terry Pratchett/Discworld 24 The Fifth Elephant (1)/metadata.opf

Fetching cover ...
* Done! Saved to /home/mars/Disk2/Ebooks/Terry Pratchett/Discworld 24 The Fifth Elephant (1)/cover.jpg
Add new metadata to database ...
Title               : The Fifth Elephant: Discworld Novel 24
Title sort          : Fifth Elephant: Discworld Novel 24, The
Author(s)           : Terry Pratchett [Pratchett, Terry]
Publisher           : Transworld
Tags                : Humorous, Fantasy, General, LaSi 20111122, Fiction
Languages           : eng
Timestamp           : 2011-11-22T19:14:40+00:00
Published           : 2008-09-04T19:15:31.237712+00:00
Identifiers         : google:56D8mDfygkwC, isbn:9781407035208
Comments            : They say that diplomacy is a gentle art. That its finest practitioners are subtle, sophisticated individuals for whom nuance and subtext are meat and drink. And that mastering it is a lifetimeÝs work. But you do need a certain inclination in that direction. ItÝs not something you can just pick up on the job.   Which is a shame if you find yourself dropped unaccountably into a position of some significant diplomatic responsibility. If you donÝt really do diplomacy or havenÝt been to school with the right foreign bigwigs or arenÝt even sure whether a nod is as good as a wink to anyone, sighted or otherwise, then things are likely to go wrong. ItÝs just a question of how badlyÍ
Backing up metadata
Notifying calibre of the change

< ## >  Stieg Larsson - Gerechtigheid  < ## >
Fetching metadata ...
No ISBN found, searching with Stieg Larsson - Gerechtigheid ...
 * Done! Saved to /home/mars/Disk2/Ebooks/Stieg Larsson/Gerechtigheid (4)/metadata.opf

Fetching cover ...
* Done! Saved to /home/mars/Disk2/Ebooks/Stieg Larsson/Gerechtigheid (4)/cover.jpg
Add new metadata to database ...
Title               : Gerechtigheid
Title sort          : Gerechtigheid
Author(s)           : Stieg Larsson [Larsson, Stieg]
Publisher           : PCM Bruna
Tags                : LaSi 20111122
Languages           : eng
Timestamp           : 2011-11-22T19:14:44+00:00
Published           : 2009-08-26T10:29:09+00:00
Identifiers         : amazon:905672178X
Backing up metadata
Notifying calibre of the change

< ## >  Terry Goodkind - Sword of Truth 01 Wizard's First Rule  < ## >
Fetching metadata ...
No ISBN found, searching with Terry Goodkind - Sword of Truth 01 Wizard's First Rule ...
 * Done! Saved to /home/mars/Disk2/Ebooks/Terry Goodkind/Sword of Truth 01 Wizard's First Rule (3)/metadata.opf

Fetching cover ...
No cover found
* Fail!
Add new metadata to database ...
Title               : Sword of Truth #01: Wizard's First Rule
Title sort          : Sword of Truth #01: Wizard's First Rule
Author(s)           : Terry Goodkind [Goodkind, Terry]
Publisher           : Tor Books
Tags                : LaSi 20111122
Languages           : eng
Timestamp           : 2011-11-22T19:14:43+00:00
Published           : 2010-05-17T22:14:35+00:00
Identifiers         : amazon:B001JZXZ7U
Backing up metadata
Notifying calibre of the change
mars@XBMC:~$ 


En op de server geeft dat dit als resultaat na een herstart van de service:
http://tweakers.net/ext/f/Y01In1gnJsuCLzQd12Mqanp2/medium.png

Volgende: [s]Subsonic[/s] Nee! MPD! 11-'11 [s]Subsonic[/s] Nee! MPD!
Volgende: Unity; Canonical pusht een interface 10-'11 Unity; Canonical pusht een interface

Reacties


Door Tweakers user we_are_borg, zaterdag 12 november 2011 22:20

Mooie blog weer.

Heb een klein probleempje ik krijg de fout melding:

calibre-server: error: no such option: --daemonize

ENABLE_DAEMON=1

Door Tweakers user Mar2zz, zaterdag 12 november 2011 22:25

Wou net gaan pitten :) Je hebt dan een te oude versie die die optie nog niet heeft, typ maar eens calibre-server --help en dan staat daemonize er niet tussen. Dan zul je toch de installatie via de webpagina moeten doen. Zit je toevallig op Lucid?

Door Tweakers user we_are_borg, zaterdag 12 november 2011 22:50

Heel toevallig zit ik op Lucid ik download even een nieuwe versie die ik nu heb is calibre-server (calibre 0.6.42) beetje oud dus.

Door Tweakers user we_are_borg, zaterdag 12 november 2011 23:00

Heb de niuewste versie gedownload nu draait het maar na veranderen pad doet het systeem het weer niet.

Door Tweakers user Nahata, zondag 13 november 2011 04:45

Zou wel mooi zijn als het met manga overweg kan, heb nu alles in een rar/zip staan. Zou iig wel makelijk zijn als ik alles lokaal op mijn severtje heb en op elke PC er toegang tot heb.

Door Tweakers user Mar2zz, zondag 13 november 2011 07:21

we_are_borg schreef op zaterdag 12 november 2011 @ 23:00:
Heb de niuewste versie gedownload nu draait het maar na veranderen pad doet het systeem het weer niet.
Ik ben benieuwd naar de foutmelding die je krijgt, ik wil 'm opnemen in mijn LaSi-installer en foutmeldingen voor zijn bij install/start.

Mijn server is namelijk ook Lucid, had alles getest in een Oneiric VM en daar werkte het perfect, zette het over naar mijn Live omgeving en kwam er toen achter dat de versie te laag was en zonder --daemonize werkte (wat heb je zonder daemonize aan een server-app... Daarom ben ik hier ook niet eerder aan begonnen, ben er wel eens eerder tegen aan gelopen. Ik heb calibre in /opt/calibre staan btw.

@Nahata:
Ligt aan de extensie, ondersteunde types staan hier: http://manual.calibre-ebook.com/faq.html.

Ik doe zelf bijvoorbeeld ook veel tijdschriften in Calibre (die lees ik gewoon op mijn laptop), alleen zal ie daar nooit metadata voor vinden en moet je die zelf verrijken.

Door Tweakers user we_are_borg, zondag 13 november 2011 11:46

Wel na een nieuwe opstart zijn de fouten weg maar van de 20 boeken die ik in de folder heb staan vindt Calibre er maar 2. Waar ik weer niets mee ka doen behalve wat informatie opvragen.

Door Tweakers user Mar2zz, zondag 13 november 2011 13:52

Dat ie er maar 2 vind klopt niet. Wat ik al wel weet is dat de server een herstart moet hebben als er nieuwe boeken worden toegevoegd. Nu had ik als idee om een cronjob te doen, de postprocessor ergens een checkfile aan laten maken en dan de cronjob laten checken om het uur ofzo of de checkfile bestaat en dan een herstart uitvoert in dien deze bestaat en vervolgens opruimt (je moet wat overhebben voor automatisering :p).

Ik heb bovenstaande postprocessor geupdate met wat betere code.

Wat je kunt doen, ff je library moven naar een andere locatie, daarna het postprocessscript runnen met parameter "andere locatie" zodat ie opnieuw alle boeken importeert naar de normale locatie (die zet je in het script) en dan zouden ze er alle 20 moeten zijn (die je dus pas ziet na herstart server.

edit:
Deze kun je bijvoorbeeld in /etc/cron.hourly in een script zetten, dan checkt ie elk uur of de server herstart moet:

code:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh

# This file checks if the calibre-server needs a restart because books are added.

### EDIT ME ###

checkfile=/pad/naar/.calibre_check

### END EDIT ###

[ -e $checkfile ] && /etc/init.d/calibre-server restart

[Reactie gewijzigd op zondag 13 november 2011 14:22]


Door Tweakers user we_are_borg, maandag 14 november 2011 23:35

Wel het lukt me momenteel niet ik ga weer vanaf het begin beginnen Couchpotato en Sickbeard werken ook niet naar behoren.

Door Tweakers user Mar2zz, dinsdag 15 november 2011 07:02

voor die andere apps kun je mijn LaSi script wel gebruiken. Die installeert het hele zooitje binnen de minuut met een solide opzet. Wat betreft calibre, ik ben bezig met fetch-ebook-metadata en gaat goeie kant op. Ik ben benieuwd waar je tegenaan loopt, ik wil daar ook install voor schrijven.

Door Tweakers user onskip, dinsdag 15 november 2011 14:45

Ik heb Calibre ge´nstalleerd op mijn Ubuntu 11.04 machine volgens jou aanwijzingen. Heb netjes mapje aangemaakt waar alle boeken in komen te staan. Deze map als Library aangegeven in de settingsfile, maar helaas ziet calibre geen enkel boek. Ik heb calibre ook al enkele malen herstart, maar er worden geen titels ge´mporteerd.

Vergeet ik iets ?

Verder kudos voor jou site!!

Door Tweakers user Mar2zz, dinsdag 15 november 2011 18:31

de map waar je boeken instaan is niet zomaar een calibrelibrary, je moet ook echt importeren. Er komt dan een metadata.db in de map te staan. Als je calibredb add --with-library=/pad/naar/library -r /pad/naar/import/boeken doet dan wordt die library pas aangemaakt. Dit kan even duren. Daarna /etc/init.d/calibre-server restart en dan zijn al je boeken online beschikbaar.

edit:
Je kunt overigens ook gewoon de map die je met een gui calibre hebt geimporteerd als server map gebruiken. Daar is ook die metadata.db aanwezig.

Voor het importeren kun je eventueel ook bovenstaand script gebruiken. Als je nog een weekje ofzo geduld hebt komt er een script wat ook covers en metadata ophaalt, ben momenteel beetje aan het testen ermee. (de resultaten daarmee voor nederlandse titels zijn daarbij overigens nogal teleurstellend, wat voor mij niet veel uitmaakt omdat ik het meeste in het engels lees als dat de originele taal van de auteur is).

[Reactie gewijzigd op dinsdag 15 november 2011 19:33]


Door Tweakers user ilovetechno, dinsdag 15 november 2011 20:17

Iemand die hem op een ReadyNas systeem aan de praat heeft gekregen?

E: Couldn't find package python-qt4-dev.

Door Tweakers user onskip, donderdag 17 november 2011 13:29

Mijn probleem is opgelost. Boeken via de GUI ge´mporteerd. Was in veronderstelling dat Calibre dit automagisch zou doen.

Werkt allemaal top nu!

Door Tweakers user r3v0ss, maandag 21 november 2011 19:35

Voor de ge´nteresseerden, hier een startup script voor de calibre daemon voor Arch.

Door Tweakers user Mar2zz, dinsdag 22 november 2011 06:54

nice work rev. Waarom start je de devel versie van de server? Ben je calinre dev of zijn er andere voordelen?

Ik heb overigens al een ruwe, werkende postprocessor af die meta en covers importeert. Nog ff wat tunen en dan zet ik 'm online.

Door Tweakers user r3v0ss, dinsdag 22 november 2011 09:07

Mar2zz schreef op dinsdag 22 november 2011 @ 06:54:
nice work rev. Waarom start je de devel versie van de server?
:D niet eens gezien. Is niet van mij persoonlijk, via de AUR van Arch kwam ik er terecht. Kats overheen gekeken.

Door Tweakers user -Gizmo-, woensdag 21 december 2011 16:57

Ik heb dit nog niet aan de praat gekregen op mijn synology.
Hij mist het PyQt package, maar die is niet te krijgen in ipkg. hier heeft iemand het zelf gecompiled, maar zover gaan mijn linux-skills nu ook weer niet.
Misschien dat iemand met wat meer skills kan onderzoeken.
Zou wel een top functie zijn die ik kan toevoegen aan mijn NAS.

Door Tweakers user MoiZie, maandag 23 januari 2012 11:07

:/# service calibre-server start
/etc/init.d/calibre-server: 30: /etc/default/calibre-server: is: not found
/etc/init.d/calibre-server: 81: [: =: unexpected operator
* Starting Calibre Server [ OK ]

Enig idee wat ik hieraan kan doen? De daemon draait verder prima.

Door Tweakers user Polyphemus, donderdag 3 mei 2012 13:41

@MoiZie:

Had ik ook last van. Om het op te lossen moet je hetvolgende doen:

In /etc/default/calibre-server staat ongeveer halverwege 'is' aan het begin van een nieuwe regel; dat moet je uitcommenten met een # ervoor.

En je moet in dezelfde file 'ENABLE_DEVELOPMENT=0' (zonder quotes) toevoegen om de error op regel 81 op te lossen. De '0' kan ook een '1' zijn, als je wil ontwikkelen :)

Reageren is niet meer mogelijk