Misc :: Calibre

Calibre

calibre OPDS

http://ip:port/opds

calibre-server

calibre-server [options] [path to lib folder]
    --auto-reload
    --daemonize
    --displayed-fields  # comma separated
    --enable-auth
    --enable-local-write
    --log
    --access-log
    --manage-users
    --max-log-size  # size in MB; zero disable log rotation
    --port
    --url-prefix    # /calibre
    --userdb    # to create, use --manage-users
    --pidfile   # set location of pidfile

# example
calibre-server --daemonize --log=/var/log/calibre.log --max-log-size=50 --port 8080 --enable-local-write

# create systemd unit template
/etc/systemd/system/calibre-server@.service
# systemctl start calibre-server@user.service
[Unit]
Description=calibre Content Server
After=network.target

[Service]
Type=simple
User=%i
PIDFile=/var/tmp/calibre/server.pid
PermissionsStartOnly=true
ExecStartPre=/usr/bin/mkdir -p /var/tmp/calibre -m 777
ExecStart=/usr/bin/calibre-server \
--log=/var/tmp/calibre/error.log \
--access-log=/var/tmp/calibre/access.log \
--max-log-size=50 \
--port=8080 \
--enable-local-write \
--pidfile=/var/tmp/calibre/server.pid \
/home/%i/calibre/

[Install]
WantedBy=multi-user.target

calibredb

# if calibre-server is running, with --enable-local-write
calibredb command [options] [arguments]

# list
calibredb list [options]
    --fields # fields, sep by comma, authors, series, tags, title; default title and authors; all
    --limit # default all
    --search  # search
    --separator # default space
    --sort-by   # default id
    --ascending

# add
calibredb add [options] file1 file2 file3...
    --authors, -a  # set authors
    --automerge, -m # automerge
    --cover, -c
    --series, -s
    --tags, -T
    --title, -t

# remove
calibredb remove ids    # separated by comma
    --permanent

# metadata
calibredb show_metadata id
calibredb set_metadata [options] id
    --list-fields, -l   # list fields
    --field, -f # field_name:value. e.g.: --field tags:tag1,tag2

# export
calibredb export [options] ids
    --all
    --dont-save-cover
    --dont-write-opf
    --formats   # separated by comma
    --progress
    --replace-whitespace
    --template  # "{title}-{author}"
    --to-dir    # folder, default is .
    --to-lowercase

## export 
calibredb --with-library="http://localhost:8080" export --all --formats=epub,m4b --dont-write-opf --dont-save-cover --progress --template="{series}/{title} - {authors}"

# format
calibredb add_format [options] id ebbok_file
    --dont-replace  # dont replace if already exists
calibredb remove_format [options] id fmt