calibredb¶
calibredb command [options] [arguments]
calibredb is the command line interface to the calibre database. It has several sub-commands, documented below.
calibredb can be used to manipulate either a calibre database specified by path or a calibre Content server running either on the local machine or over the internet. You can start a calibre Content server using either the calibre-server program or in the main calibre program click Connect/share → Start Content server. Since calibredb can make changes to your calibre libraries, you must setup authentication on the server first. There are two ways to do that:
If you plan to connect only to a server running on the same computer, you can simply use the
--enable-local-writeoption of the Content server, to allow any program, including calibredb, running on the local computer to make changes to your calibre data. When running the server from the main calibre program, this option is in Preferences → Sharing over the net → Advanced. Be careful though, because some browsers, primarily Firefox, allow arbitrary websites to also access local servers. If you use Firefox, it is better to setup username and password, as described below. Local Network Access restriction has still not been implemented as of Firefox v149.If you want to enable access over the internet, then you should setup user accounts on the server and use the
--usernameand--passwordoptions to calibredb to give it access. You can setup user authentication for calibre-server by using the--enable-authoption and using--manage-usersto create the user accounts. If you are running the server from the main calibre program, use Preferences → Sharing over the net → Require username/password.
To connect to a running Content server, pass the URL of the server to the
--with-library option, see the documentation of that option for
details and examples.
Global Options¶
- --help, -h¶
show this help message and exit
- --library-path, --with-library¶
Path to the calibre library. Default is to use the path stored in the settings. You can also connect to a calibre Content server to perform actions on remote libraries. To do so use a URL of the form: http://hostname:port/#library_id for example, http://localhost:8080/#mylibrary. library_id is the library id of the library you want to connect to on the Content server. You can use the special library_id value of - to get a list of library ids available on the server. For details on how to setup access via a Content server, see https://manual.calibre-ebook.com/generated/en/calibredb.html.
- --password¶
Password for connecting to a calibre Content server. To read the password from standard input, use the special value: <stdin>. To read the password from a file, use: <f:/path/to/file> (i.e. <f: followed by the full path to the file and a trailing >). The angle brackets in the above are required, remember to escape them or use quotes for your shell.
- --timeout¶
The timeout, in seconds, when connecting to a calibre library over the network. The default is two minutes.
- --username¶
Username for connecting to a calibre Content server
- --version¶
show program
's version number and exit
list¶
calibredb list [options]
List the books available in the calibre database.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --ascending¶
Sort results in ascending order
- --fields, -f¶
The fields to display when listing books in the database. Should be a comma separated list of fields. Available fields: author_sort, authors, comments, cover, formats, identifiers, isbn, languages, last_modified, pubdate, publisher, rating, series, series_index, size, tags, template, timestamp, title, uuid Default: title,authors. The special field
"all"can be used to select all fields. In addition to the builtin fields above, custom fields are also available as *field_name, for example, for a custom field #rating, use the name: *rating
- --for-machine¶
Generate output in JSON format, which is more suitable for machine parsing. Causes the line width and separator options to be ignored.
- --limit¶
The maximum number of results to display. Default: all
- --line-width, -w¶
The maximum width of a single line in the output. Defaults to detecting screen size.
- --prefix¶
The prefix for all file paths. Default is the absolute path to the library folder.
- --search, -s¶
Filter the results by the search query. For the format of the search query, please see the search related documentation in the User Manual. Default is to do no filtering.
- --separator¶
The string used to separate fields. Default is a space.
- --sort-by¶
The field by which to sort the results. You can specify multiple fields by separating them with commas. Available fields: author_sort, authors, comments, cover, formats, identifiers, isbn, languages, last_modified, pubdate, publisher, rating, series, series_index, size, tags, template, timestamp, title, uuid Default: id. In addition to the builtin fields above, custom fields are also available as *field_name, for example, for a custom field #rating, use the name: *rating
- --template¶
The template to run if
"template"is in the field list. Note that templates are ignored while connecting to a calibre server. Default: None
- --template_file, -t¶
Path to a file containing the template to run if
"template"is in the field list. Default: None
- --template_heading¶
Heading for the template column. Default: template. This option is ignored if the option
--for-machineis set
add¶
calibredb add [options] file1 file2 file3 ...
Add the specified files as books to the database. You can also specify folders, see the folder related options below.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --authors, -a¶
Set the authors of the added book(s)
- --automerge, -m¶
If books with similar titles and authors are found, merge the incoming formats (files) automatically into existing book records. A value of
"ignore"means duplicate formats are discarded. A value of"overwrite"means duplicate formats in the library are overwritten with the newly added files. A value of"new_record"means duplicate formats are placed into a new book record.
- --cover, -c¶
Path to the cover to use for the added book
- --duplicates, -d¶
Add books to database even if they already exist. Comparison is done based on book titles and authors. Note that the
--automergeoption takes precedence.
- --empty, -e¶
Add an empty book (a book with no formats)
- --identifier, -I¶
Set the identifiers for this book, e.g. -I asin:XXX -I isbn:YYY
- --isbn, -i¶
Set the ISBN of the added book(s)
- --languages, -l¶
A comma separated list of languages (best to use ISO639 language codes, though some language names may also be recognized)
- --series, -s¶
Set the series of the added book(s)
- --series-index, -S¶
Set the series number of the added book(s)
- --tags, -T¶
Set the tags of the added book(s)
- --title, -t¶
Set the title of the added book(s)
Adding From Folders¶
Options to control the adding of books from folders. By default only files that have extensions of known e-book file types are added.
- --add¶
A filename (glob) pattern, files matching this pattern will be added when scanning folders for files, even if they are not of a known e-book file type. Can be specified multiple times for multiple patterns.
- --ignore¶
A filename (glob) pattern, files matching this pattern will be ignored when scanning folders for files. Can be specified multiple times for multiple patterns. For example: *.pdf will ignore all PDF files
- --one-book-per-directory, -1¶
Assume that each folder has only a single logical book and that all files in it are different e-book formats of that book
- --recurse, -r¶
Process folders recursively
remove¶
calibredb remove ids
Remove the books identified by ids from the database. ids should be a comma separated list of id numbers (you can get id numbers by using the search command). For example, 23,34,57-85 (when specifying a range, the last number in the range is not included).
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --permanent¶
Do not use the trash bin
add_format¶
calibredb add_format [options] id ebook_file
Add the e-book in ebook_file to the available formats for the logical book identified by id. You can get id by using the search command. If the format already exists, it is replaced, unless the do not replace option is specified.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --as-extra-data-file¶
Add the file as an extra data file to the book, not an ebook format
- --dont-replace¶
Do not replace the format if it already exists
remove_format¶
calibredb remove_format [options] id fmt
Remove the format fmt from the logical book identified by id. You can get id by using the search command. fmt should be a file extension like LRF or TXT or EPUB. If the logical book does not have fmt available, do nothing.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
show_metadata¶
calibredb show_metadata [options] id
Show the metadata stored in the calibre database for the book identified by id. id is an id number from the search command.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --as-opf¶
Print metadata in OPF form (XML)
set_metadata¶
calibredb set_metadata [options] book_id [/path/to/metadata.opf]
Set the metadata stored in the calibre database for the book identified by book_id from the OPF file metadata.opf. book_id is a book id number from the search command. You can get a quick feel for the OPF format by using the –as-opf switch to the show_metadata command. You can also set the metadata of individual fields with the –field option. If you use the –field option, there is no need to specify an OPF file.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --field, -f¶
The field to set. Format is field_name:value, for example:
--fieldtags:tag1,tag2. Use--list-fieldsto get a list of all field names. You can specify this option multiple times to set multiple fields. Note: For languages you must use the ISO639 language codes (e.g. en for English, fr for French and so on). For identifiers, the syntax is--fieldidentifiers:isbn:XXXX,doi:YYYYY. For boolean (yes/no) fields use true and false or yes and no.
export¶
calibredb export [options] ids
Export the books specified by ids (a comma separated list) to the filesystem. The export operation saves all formats of the book, its cover and metadata (in an OPF file). Any extra data files associated with the book are also saved. You can get id numbers from the search command.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --all¶
Export all books in database, ignoring the list of ids.
- --dont-asciiize¶
Have calibre convert all non English characters into English equivalents for the file names. This is useful if saving to a legacy filesystem without full support for Unicode filenames. Specifying this switch will turn this behavior off.
- --dont-save-cover¶
Normally, calibre will save the cover in a separate file along with the actual e-book files. Specifying this switch will turn this behavior off.
- --dont-save-extra-files¶
Save any data files associated with the book when saving the book Specifying this switch will turn this behavior off.
- --dont-update-metadata¶
Normally, calibre will update the metadata in the saved files from what is in the calibre library. Makes saving to disk slower. Specifying this switch will turn this behavior off.
- --dont-write-opf¶
Normally, calibre will write the metadata into a separate OPF file along with the actual e-book files. Specifying this switch will turn this behavior off.
- --formats¶
Comma separated list of formats to save for each book. By default all available formats are saved.
- --progress¶
Report progress
- --replace-whitespace¶
Replace whitespace with underscores.
- --single-dir¶
Export all books into a single folder
- --template¶
The template to control the filename and folder structure of the saved files. Default is
"{author_sort}/{title}/{title} - {authors}"which will save books into a per-author subfolder with filenames containing title and author. Available controls are: {author_sort, authors, id, isbn, languages, last_modified, pages, pubdate, publisher, rating, series, series_index, tags, timestamp, title}
- --timefmt¶
The format in which to display dates. %d - day, %b - month, %m - month number, %Y - year. Default is: %b, %Y
- --to-dir¶
Export books to the specified folder. Default is .
- --to-lowercase¶
Convert paths to lowercase.
catalog¶
calibredb catalog /path/to/destination.(csv|epub|mobi|xml...) [options]
Export a catalog in format specified by path/to/destination extension. Options control how entries are displayed in the generated catalog output. Note that different catalog formats support different sets of options. To see the different options, specify the name of the output file and then the –help option.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --ids, -i¶
Comma-separated list of database IDs to catalog. If declared,
--searchis ignored. Default: all
- --search, -s¶
Filter the results by the search query. For the format of the search query, please see the search-related documentation in the User Manual. Default: no filtering
- --verbose, -v¶
Show detailed output information. Useful for debugging
Epub Options¶
- --catalog-title¶
Title of generated catalog used as title in metadata. Default:
'My Books'Applies to: AZW3, EPUB, MOBI output formats
- --cross-reference-authors¶
Create cross-references in Authors section for books with multiple authors. Default:
'False'Applies to: AZW3, EPUB, MOBI output formats
- --debug-pipeline¶
Save the output from different stages of the conversion pipeline to the specified folder. Useful if you are unsure at which stage of the conversion process a bug is occurring. Default:
'None'Applies to: AZW3, EPUB, MOBI output formats
- --exclude-genre¶
Regex describing tags to exclude as genres. Default:
'[.+]|^+$'excludes bracketed tags, e.g.'[Project Gutenberg]', and'+', the default tag for read books. Applies to: AZW3, EPUB, MOBI output formats
- --exclusion-rules¶
Specifies the rules used to exclude books from the generated catalog. The model for an exclusion rule is either (
'<rule name>','Tags','<comma-separated list of tags>') or ('<rule name>','<custom column>','<pattern>'). For example: (('Archived books','#status','Archived'),) will exclude a book with a value of'Archived'in the custom column'status'. When multiple rules are defined, all rules will be applied. Default:"(('Catalogs','Tags','Catalog'),)"Applies to: AZW3, EPUB, MOBI output formats
- --generate-authors¶
Include
'Authors'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --generate-descriptions¶
Include
'Descriptions'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --generate-genres¶
Include
'Genres'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --generate-recently-added¶
Include
'Recently Added'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --generate-series¶
Include
'Series'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --generate-titles¶
Include
'Titles'section in catalog. Default:'False'Applies to: AZW3, EPUB, MOBI output formats
- --genre-source-field¶
Source field for
'Genres'section. Default:'Tags'Applies to: AZW3, EPUB, MOBI output formats
- --header-note-source-field¶
Custom field containing note text to insert in Description header. Default:
''Applies to: AZW3, EPUB, MOBI output formats
- --merge-comments-rule¶
#<custom field>:[before|after]:[True|False] specifying: <custom field> Custom field containing notes to merge with comments [before|after] Placement of notes with respect to comments [True|False] - A horizontal rule is inserted between notes and comments Default:
'::'Applies to: AZW3, EPUB, MOBI output formats
- --output-profile¶
Specifies the output profile. In some cases, an output profile is required to optimize the catalog for the device. For example,
'kindle'or'kindle_dx'creates a structured Table of Contents with Sections and Articles. Default:'None'Applies to: AZW3, EPUB, MOBI output formats
- --prefix-rules¶
Specifies the rules used to include prefixes indicating read books, wishlist items and other user-specified prefixes. The model for a prefix rule is (
'<rule name>','<source field>','<pattern>','<prefix>'). When multiple rules are defined, the first matching rule will be used. Default:"(('Read books','tags','+','✓'),('Wishlist item','tags','Wishlist','×'))"Applies to: AZW3, EPUB, MOBI output formats
- --preset¶
Use a named preset created with the GUI catalog builder. A preset specifies all settings for building a catalog. Default:
'None'Applies to: AZW3, EPUB, MOBI output formats
- --thumb-width¶
Size hint (in inches) for book covers in catalog. Range: 1.0 - 2.0 Default:
'1.0'Applies to: AZW3, EPUB, MOBI output formats
- --use-existing-cover¶
Replace existing cover when generating the catalog. Default:
'False'Applies to: AZW3, EPUB, MOBI output formats
saved_searches¶
calibredb saved_searches [options] [list|add|remove]
Manage the saved searches stored in this database. If you try to add a query with a name that already exists, it will be replaced.
Syntax for listing, the default action:
calibredb saved_searches list
Syntax for adding:
calibredb saved_searches add search_name search_expression
Syntax for removing:
calibredb saved_searches remove search_name
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
add_custom_column¶
calibredb add_custom_column [options] label name datatype
Create a custom column. label is the machine friendly name of the column. Should not contain spaces or colons. name is the human friendly name of the column. datatype is one of: bool, comments, composite, datetime, enumeration, float, int, rating, series, text
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --display¶
A dictionary of options to customize how the data in this column will be interpreted. This is a JSON string. For enumeration columns, use
--display"{\"enum_values\":[\"val1\", \"val2\"]}"There are many options that can go into the display variable.The options by column type are: composite: composite_template, composite_sort, make_category,contains_html, use_decorations datetime: date_format enumeration: enum_values, enum_colors, use_decorations int, float: number_format text: is_names, use_decorations The best way to find legal combinations is to create a custom column of the appropriate type in the GUI then look at the backup OPF for a book (ensure that a new OPF has been created since the column was added). You will see the JSON for the"display"for the new column in the OPF.
- --is-multiple¶
This column stores tag like data (i.e. multiple comma separated values). Only applies if datatype is text.
custom_columns¶
calibredb custom_columns [options]
List available custom columns. Shows column labels and ids.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --details, -d¶
Show details for each column.
remove_custom_column¶
calibredb remove_custom_column [options] label
Remove the custom column identified by label. You can see available columns with the custom_columns command.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --force, -f¶
Do not ask for confirmation
set_custom¶
calibredb set_custom [options] column id value
Set the value of a custom column for the book identified by id. You can get a list of ids using the search command. You can get a list of custom column names using the custom_columns command.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --append, -a¶
If the column stores multiple values, append the specified values to the existing ones, instead of replacing them.
restore_database¶
calibredb restore_database [options]
Restore this database from the metadata stored in OPF files in each folder of the calibre library. This is useful if your metadata.db file has been corrupted.
WARNING: This command completely regenerates your database. You will lose all saved searches, user categories, plugboards, stored per-book conversion settings, and custom recipes. Restored metadata will only be as accurate as what is found in the OPF files.
The exit status is 0 if the restore succeeded, 1 if it failed completely and 2 if the database was restored but some books or other data could not be.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --really-do-it, -r¶
Really do the recovery. The command will not run unless this option is specified.
check_library¶
calibredb check_library [options]
Perform some checks on the filesystem representing a library. Reports are invalid_titles, extra_titles, invalid_authors, extra_authors, missing_formats, extra_formats, extra_files, missing_covers, extra_covers, malformed_formats, malformed_paths, failed_folders
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --csv, -c¶
Output in CSV
- --ignore_extensions, -e¶
Comma-separated list of extensions to ignore. Default: all
- --ignore_names, -n¶
Comma-separated list of names to ignore. Default: all
- --report, -r¶
Comma-separated list of reports. Default: all
- --vacuum-fts-db¶
Vacuum the full text search database. This can be very slow and memory intensive, depending on the size of the database.
list_categories¶
calibredb list_categories [options]
Produce a report of the category information in the database. The information is the equivalent of what is shown in the Tag browser.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --categories, -r¶
Comma-separated list of category lookup names. Default: all
- --csv, -c¶
Output in CSV
- --dialect¶
The type of CSV file to produce. Choices: excel, excel-tab, unix
- --item_count, -i¶
Output only the number of items in a category instead of the counts per item within the category
- --width, -w¶
The maximum width of a single line in the output. Defaults to detecting screen size.
backup_metadata¶
calibredb backup_metadata [options]
Backup the metadata stored in the database into individual OPF files in each books folder. This normally happens automatically, but you can run this command to force re-generation of the OPF files, with the –all option.
Note that there is normally no need to do this, as the OPF files are backed up automatically, every time metadata is changed.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --all¶
Normally, this command only operates on books that have out of date OPF files. This option makes it operate on all books.
clone¶
calibredb clone path/to/new/library
Create a clone of the current library. This creates a new, empty library that has all the same custom columns, Virtual libraries and other settings as the current library.
The cloned library will contain no books. If you want to create a full duplicate, including all books, then simply use your filesystem tools to copy the library folder.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
embed_metadata¶
calibredb embed_metadata [options] book_id
Update the metadata in the actual book files stored in the calibre library from the metadata in the calibre database. Normally, metadata is updated only when exporting files from calibre, this command is useful if you want the files to be updated in place. Note that different file formats support different amounts of metadata. You can use the special value ‘all’ for book_id to update metadata in all books. You can also specify many book ids separated by spaces and id ranges separated by hyphens. For example: calibredb embed_metadata 1 2 10-15 23
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --only-formats, -f¶
Only update metadata in files of the specified format. Specify it multiple times for multiple formats. By default, all formats are updated.
search¶
calibredb search [options] search expression
Search the library for the specified search term, returning a comma separated list of book ids matching the search expression. The output format is useful to feed into other commands that accept a list of ids as input.
The search expression can be anything from calibre’s powerful search query language, for example: calibredb search author:asimov ‘title:”i robot”’
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --limit, -l¶
The maximum number of results to return. Default is all results.
fts_index¶
calibredb fts_index [options] enable/disable/status/reindex
Control the Full text search indexing process.
- enable
Turns on FTS indexing for this library
- disable
Turns off FTS indexing for this library
- status
Shows the current indexing status
- reindex
Can be used to re-index either particular books or the entire library. To re-index particular books specify the book ids as additional arguments after the reindex command. If no book ids are specified the entire library is re-indexed.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --indexing-speed¶
The speed of indexing. Use fast for fast indexing using all your computers resources and slow for less resource intensive indexing. Note that the speed is reset to slow after every invocation.
- --wait-for-completion¶
Wait till all books are indexed, showing indexing progress periodically
fts_search¶
calibredb fts_search [options] search expression
Do a full text search on the entire library or a subset of it.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
Only match on exact words not related words. So correction will not match correcting.
- --include-snippets¶
Include snippets of the text surrounding each match. Note that this makes searching much slower.
- --indexing-threshold¶
How much of the library must be indexed before searching is allowed, as a percentage. Defaults to 90
- --match-end-marker¶
The marker used to indicate the end of a matched word inside a snippet
- --match-start-marker¶
The marker used to indicate the start of a matched word inside a snippet
- --output-format¶
The format to output the search results in. Either
"text"for plain text or"json"for JSON output.
- --restrict-to¶
Restrict the searched books, either using a search expression or ids. For example: ids:1,2,3 to restrict by ids or search:tag:foo to restrict to books having the tag foo.
notes¶
calibredb notes [options] [list|search|show|set|remove]
Manage the notes attached to items such as authors, series, tags and publishers. FIELD is the lookup name of the field, for example: authors, series, tags, publisher or #mycolumn. ITEM is the name of the item, for example the name of an author. Items are matched case insensitively.
List the items that have notes, optionally only those in the specified field. This is the default action:
calibredb notes list [FIELD]
Search the text of notes using the same SQLite full text search syntax as the Browse notes tool in calibre. Print the field, item name and an excerpt for each match. Use –field to search only the notes in a particular field:
calibredb notes search “search expression” calibredb notes search –field authors “search expression”
Print the note for an item as Markdown formatted text, or with –as-html as an HTML document with any images embedded, suitable for use with set:
calibredb notes show FIELD ITEM
Replace the note for an item with the contents of an HTML file. Use - to read the HTML from standard input. Images embedded as base64-encoded data: URLs are added to the note for both local and remote libraries. When using a local library and reading from a file, images referenced by paths relative to the file are added as well:
calibredb notes set FIELD ITEM FILE
Remove the note for an item:
calibredb notes remove FIELD ITEM
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --as-html¶
When showing a note, output it as HTML instead of Markdown formatted text
- --field¶
When searching notes, restrict the search to this field, for example: authors, tags or #mycolumn
items¶
calibredb items [options] (rename|remove) FIELD ITEM ...
Rename or remove items such as authors, tags, series and publishers in all books, the same as the Manage authors, tags, etc. actions in the calibre interface. FIELD is the lookup name of the field, for example: authors, tags, series, publisher or #mycolumn. Items are matched case insensitively.
Rename an item. If an item named NEW_NAME already exists, the two items are merged. For fields that contain multiple values, NEW_NAME can contain more than one value, separated by the separator for the field, for example a comma for tags. The item is then replaced by all the values:
calibredb items rename FIELD ITEM NEW_NAME
Remove one or more items from all books. Authors cannot be removed:
calibredb items remove FIELD ITEM [ITEM …]
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --search, -s¶
Only change books that match the specified search expression, for example: tags:
"=Fiction"
virtual_libraries¶
calibredb virtual_libraries [options] [list|add|rename|remove]
Manage the Virtual libraries of this library. A Virtual library is a search that behaves as though the library contains only the books it matches. To list or search the books in a Virtual library, use: calibredb search ‘vl:”name”’
List the Virtual libraries, with their searches and number of books. This is the default action:
calibredb virtual_libraries list
Create a Virtual library from a search:
calibredb virtual_libraries add name search_expression
Rename a Virtual library:
calibredb virtual_libraries rename name new_name
Remove Virtual libraries, the books in them are not changed:
calibredb virtual_libraries remove name …
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --for-machine¶
Generate output in JSON format, which is more suitable for machine parsing
- --replace¶
Replace the search of an existing Virtual library with the same name when adding
annotations¶
calibredb annotations [options] [list|search|export|import|remove]
Manage the annotations, that is the highlights and bookmarks, of books, as created in the calibre E-book viewer or synced from other applications.
List the annotations, with their ids. This is the default action:
calibredb annotations list
Search highlighted text, annotation notes and bookmark titles using the same SQLite full text search syntax as the Browse annotations tool. Results are ordered by relevance and include annotation ids, book titles and matching excerpts. Use –search to restrict the books, –type to restrict the annotation type, –user-type and –annotation-user to restrict the user, –no-stemming to match exact word forms, or –format json for a JSON array of results including the annotation data and excerpts:
calibredb annotations search “search expression”
Export the annotations as plain text, Markdown or JSON, grouped by book. The JSON is the same calibre annotation collection as created by the Export button in the Browse annotations tool:
calibredb annotations export
Import a calibre annotation collection exported as JSON by this command or the Browse annotations tool. The collection must contain annotations from only one book. BOOK_ID is the destination book id, not the id stored in the file. Only the annotations of the format FORMAT are imported, annotations of other formats are skipped. FORMAT must exist in the destination book. Use the same edition of the book so positions match:
calibredb annotations import BOOK_ID FORMAT FILE
Use - for FILE to read from standard input. The entire collection is validated before importing. Annotations are merged with existing ones using the viewer’s rules: highlights are matched by UUID and bookmarks by title, and the newer timestamp wins. Repeated imports do not create duplicates. Unrelated annotations and reading positions are preserved.
By default annotations are imported into those of the calibre E-book viewer. Use –user-type web –annotation-user USER to import them into those of a Content server user instead. Exported collections record the user the annotations belong to, and if a collection contains annotations of more than one user, it is rejected. Use the –user-type and –annotation-user options when exporting, to export the annotations of a single user.
Permanently remove the annotations with the specified ids, as shown by list:
calibredb annotations remove ID …
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --annotation-user¶
Only list, search or export the annotations of the specified user. For import, the Content server user to import the annotations for, required with
--user-typeweb. Note that this can be any user, not just the one used to connect to a remote library.
- --format, -f¶
The export format, one of: text, markdown, json. For search, text or json. Default is: text
- --no-stemming¶
For search, match exact word forms instead of word stems
- --search, -s¶
Only list, search or export the annotations of books matching the specified book search query, for example:
--search"series:Foundation"
- --type, -t¶
Only list, search or export annotations of the specified type, one of: highlight, bookmark
- --user-type¶
Only list, search or export the annotations of the specified type of user. For import, the type of user to import the annotations for, the calibre E-book viewer (local) or a Content server user (web). Default for import is local.
trash¶
calibredb trash [options] (list|restore|delete|empty) [ids]
Manage the books and formats that have been removed and placed in the trash bin. Entries in the trash bin are permanently deleted automatically after some days. ids is a comma separated list of book ids, as for the remove command, for example: 23,34,57-85 (when specifying a range, the last number in the range is not included).
List the removed books and formats, most recently removed first, with the times they were removed in local time. Removed formats of books that no longer exist are marked as not restorable, they can only be deleted. With –for-machine, the times are in UTC:
calibredb trash list
Restore removed books, or with –formats, the removed formats of books:
calibredb trash restore ids
Permanently delete entries from the trash bin:
calibredb trash delete ids
Permanently delete everything in the trash bin:
calibredb trash empty
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --for-machine¶
Generate output for the list action in JSON format, which is more suitable for machine parsing
- --formats¶
Act on the removed formats of the specified books, instead of on removed books
data_files¶
calibredb data_files [options] (list|add|get|rename|remove) BOOK_ID ...
Manage the extra data files associated with a book, in local or remote libraries. Names are relative to the book’s data directory. Use / for subdirectories, is also accepted. Files whose names contain a are listed, but cannot otherwise be managed. E-book formats, covers and metadata.opf cannot be accessed with this command. Remote libraries require an account with write access, as for other management commands, and do not support accounts with per-library search restrictions.
List file names, sizes in bytes and modification times (seconds since the Unix epoch). Use –for-machine for JSON output:
calibredb data_files list BOOK_ID
Add a file, using its basename, or –name to specify a name or subdirectory. Existing files are not replaced unless –replace is specified. This is also available through add_format –as-extra-data-file:
calibredb data_files add BOOK_ID FILE
Save one data file to –output on the local machine. Existing output files are not replaced unless –replace is specified:
calibredb data_files get BOOK_ID NAME –output FILE
Rename a file. Existing destinations are not replaced unless –replace is set:
calibredb data_files rename BOOK_ID NAME NEW_NAME
Remove a file to the operating system’s recycle bin. With –permanent, delete it permanently instead. For remote libraries this happens on the server:
calibredb data_files remove BOOK_ID NAME
Directories left empty by rename and remove are deleted. With remote libraries, each file is transferred in a single request, so very large files need enough memory on both the client and the server, and uploads are limited by the maximum request size of the server.
Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: “/some path/with spaces”
- --for-machine¶
Output the list of files as JSON
- --name¶
Name to use for the added file, relative to the data directory
- --output¶
Local destination for the get action
- --permanent¶
Permanently delete the data file instead of using the recycle bin
- --replace¶
Allow replacing existing files when adding, getting or renaming
