CALIBREDB(1) calibre CALIBREDB(1) NAME calibredb - calibredb calibredb command [options] [arguments] :command: ` calibredb` . . calibredb` :guilabel:` ` . :command:`calibre-server / -> ` , :guilabel:` . :command: ` calibredb` . . o --enable-local-write calibredb . . :guilabel: ` -> ->` . o --username --password calibredb` . `--enable-auth`` `` --manage-users`` :command: ` calibre-server` . :guilabel: ` -> ->/` . URL --with-library . . o GLOBAL OPTIONS o list o add o o remove o add_format o remove_format o show_metadata o set_metadata o export o catalog o EPUB o saved_searches o add_custom_column o custom_columns o remove_custom_column o set_custom o restore_database o check_library o list_categories o backup_metadata o clone o embed_metadata o search o fts_index o fts_search GLOBAL OPTIONS --help, -h --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: . To read the password from a file, use: (i.e. ). 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 . LIST calibredb list [options] . Whenever you pass arguments to calibredb that have spaces in them, enclose the arguments in quotation marks. For example: "/some path/with spaces" --ascending --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 . . . --separator . . --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 --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-machine is set ADD calibredb add [] 1 2 3 ... . . . 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 () --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 --duplicates, -d Add books to database even if they already exist. Comparison is done based on book titles and authors. Note that the --automerge option takes precedence. --empty, -e ( ) --identifier, -I Set the identifiers for this book, e.g. -I asin:XXX -I isbn:YYY --isbn, -i () ISBN --languages, -l ( , ISO639 ) --series, -s () --series-index, -S () --tags, -T () --title, -t () 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 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 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 OPF (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 . field_name:value(: --field tags:tag1,tag2). --list-fields` . . : ISO639 (: en, fr ). :option:--field` identifiers:isbn:XXXX,doi:YYYYY. (/) / / . --list-fields, -l List the metadata field names that can be used with the --field option 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 . ID . --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 , . 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 . . Specifying this switch will turn this behavior off. --dont-write-opf , OPF . Specifying this switch will turn this behavior off. --formats . (all) . --progress Report progress --replace-whitespace . --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, pubdate, publisher, rating, series, series_index, tags, timestamp, title} --timefmt . %d - , %b - , %m - (), %Y - . : %b, %Y --to-dir Export books to the specified folder. Default is . --to-lowercase . CATALOG calibredb catalog /path/to/destination.(csv|epub|mobi|xml...) [] / . . . --help . 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 ID . , :option: ` --search` . : --search, -s . . : --verbose, -v . . EPUB --catalog-title . : '(%d)' : AZW3, EPUB, MOBI --cross-reference-authors . : '(%d)' : AZW3, EPUB, MOBI --debug-pipeline . . : '(%d)' : AZW3, EPUB, MOBI --exclude-genre . : '(%d)' (: '[Project Gutenberg]', '+', . : AZW3, EPUB, MOBI --exclusion-rules . . ('','','') ('','',''). : ((' ','#',''),) '' '' . . : "(%d)" : AZW3, EPUB, MOBI --generate-authors '' . : '(%d)' : AZW3, EPUB, MOBI --generate-descriptions ' ' . : '(%d)' : AZW3, EPUB, MOBI --generate-genres '' . : '(%d)' : AZW3, EPUB, MOBI --generate-recently-added ' ' . : '(%d)' : AZW3, EPUB, MOBI --generate-series '' . : '(%d)' : AZW3, EPUB, MOBI --generate-titles '' . : '(%d)' : AZW3, EPUB, MOBI --genre-source-field '' . : '(%d)' : AZW3, EPUB, MOBI --header-note-source-field . : '(%d)' : AZW3, EPUB, MOBI --merge-comments-rule #:[|]:[|] : [|] [|] - . : '(%d)' : AZW3, EPUB, MOBI --output-profile . . , 'kindle' 'kindle_dx' . : '(%d)' : AZW3, EPUB, MOBI --prefix-rules , . ('','','',''). . : "(%d)" : AZW3, EPUB, MOBI --preset GUI . . : '(%d)' : AZW3, EPUB, MOBI --thumb-width (). : 1.0 - 2.0 : '(%d)' : AZW3, EPUB, MOBI --use-existing-cover . : '(%d)' : AZW3, EPUB, MOBI SAVED_SEARCHES calibredb saved_searches [] (list|add|remove) . . : calibredb saved_searches add search_name search_expression : 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 . JSON . --display"{\ "enum_values\ ":[\ "val1\ ", \ "val2\ "]}" . . : : composite_template, composite_sort, make_category,contains_html, use_decorations : date_format : enum_values, enum_colors, use_decorations: enum_values, enum_colors, use_decorations int, float: number_format : is_names, use_decorations GUI OPF ( OPF ). OPF "" JSON . --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 . 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 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. 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, 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 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 . : --csv, -c 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 [] search expression ID . ID . . : 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 . . 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" --do-not-match-on-related-words 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. AUTHOR Kovid Goyal COPYRIGHT Kovid Goyal 7.24.0 1 10, 2025 CALIBREDB(1)