I have a problem with Calibre. I have imported many ebooks and the metadata were taken from the file name. In most cases the file name was author - title.epub. All went well, the metadata were imported correctly to Calibre.

The problem is: For books which are part of a series, Calibre added the title of the book to the series column whereas the name of the series is in the title column. (Therefore searching for metadata e.g. comments on the net is not working because Calibre does not know that the title is found in the series column.)

Example: Author: Agatha Christie - Series: Hercule Poirot Mystery - Title: Death on the Nile. "Death on the Nile" would be in the series column, "Hercule Poirot Mystery" in the title column.

Is there a one-click solution to switch the title and series columns for several books? Or is there a specific setting that has to be used during the metadata downloading process that tells Calibre that the book title is in the series column?

P.S.: Reimporting the books is not an option for me for I don't have the files anymore.


No, there isn't a one click solution for swapping series and title. You can only swap title and author (in bulk metadata edit mode). If you want to automate this you have to write a (small) program that reads the metadata file (which is XML), does the swap for you, and feed it the offending files.

Not helpful for the files you already imported but maybe useful to know for new ones, is that you can change the regular expression ( Preferences -> Adding Books) that tries to extract metadata from the filename. The default there however does not put something in the series field, so you might already have changed that.

Biggest problem IMO is that Calibre uses the filename to guess the author/title etc, even if you add a file which has correct metadata available. I normally don't use Calibre's drag and drop feature, instead relying on programmatically adding files with the metadata extracted from the file internal data (for PDF/Epub etc) when available.

| improve this answer | |

Calibre - switching title and series column

There may be no elegant way to do what you're asking, but there is a way.

  1. Create a temporary column to hold copied titles
    • place your cursor over any column heading, right click, and select "add your own columns"
    • click the "+" icon on the right margin of the dialog box
    • name your column "titletemp"
    • if you're like me and you routinely forget why you did something, add a description to remind yourself
    • click "OK"
    • Click "Apply" and accept the option to exit and restart Calibre Creating a temporary column Optional: When Calibre re-opens, drag your new "titletemp" column over near the "title" and "series" columns so you can see them all together View the new temporary column
  2. Copy data from "series", which is actually the titles, to "titletemp":
    • select all the books you want to change, tap "E" on your keyboard to edit metadata in bulk
    • select the "Search and replace tab"
    • Parameters:
      • Search mode: Regular expression
      • Search field=series
      • Search for=([*])
      • Replace with=[leave blank]
      • Destination field=#titletemp ("#" denotes this is a custom field")
      • Mode: Replace field This will copy the text without the index number, since your destination column type doesn't track index numbers series-to-titletemp The result: series-to-titletemp-result
  3. Copy data from "title", which is actually the series, to "series". This will overwrite the current contents, but that's okay because you have already copied to "titletemp".
    • Parameters:
      • Search mode: Regular expression
      • Search field=title
      • Search for=([\d]*)
      • Replace with=[leave blank]
      • Destination field=#titletemp
      • Mode: Replace field
        • (Explanation: Since the mode is "Replace field", the search "([\d]*)" removes the numbers and copies all other information to the destination field.) title-to-series The result: title-to-series
  4. The series information is now in the "series" field, but the series index numbers are wonky. That's because "series" and "series_index" are two distinct data points and we only copied one. So next, we'll fix your series numbering. Copy series index number in "title" to "series_index":

    • select all the books again and enter bulk edit
    • Enter the same parameters as before, with these exceptions....
      • Search for=([a-z\s]*), which removes all text leaving only the number
      • Destination field=#titletemp_index
    • you should see only the number in the test result section, so click okay to return to the main interface and admire the perfection of your new field. Take a moment to bask. I did. title-to-series_index
  5. Now we get our titles in the correct column. Copy data in "titletemp" to "title".

    • Parameters:
      • Search mode: Regular expression
      • Search field=#titletemp_index
      • Search for=([*])
      • Replace with=[leave blank]
      • Destination field=series_index
      • Mode: Replace field titletemp-to-title Now, all your date should be in the correct columns.
  6. remove "titletemp" column using the same dialog box in which you created it.

On a side note: I use the following Regular Expression when adding books and it correctly imports books with or without a series, where file names are in the format: Author [- Series # ]- Title To add this to your Calibre: Preferences > Adding books


| improve this answer | |

Your Answer

