Quantcast
Channel: Calibre Companion FAQ - Latest FAQs
Viewing all 59 articles
Browse latest View live

When I look at book details using the cloud connection my custom columns "built from other columns" are missing. Why?

$
0
0

 The values for calibre custom columns "built from other columns" ("composite" columns) are not stored in calibre's database. Instead, calibre computes them when needed. Because of this, CC cannot read these values from the database stored in the cloud.

CC V5.0.3 and later: The values for composite columns are also stored by calibre in the "metadata.opf" file saved with every book in the calibre library. When you use the cloud connection to download a book or to look at a book's details, CC fetches the metadata.opf and reads the composite column values from that file.

It is possible that the metadata.opf file is not up to date because when you change metadata for a book, calibre writes the metadata.opf files one-by-one. Calibre writes these files while it is running at the rate of around 2 files per second. If you exit calibre before it is finished writing the files then the values for the composite columns stored in old metadata.opf might not be correct. CC detects this possibility, notifies you, and then uses the possibly-incorrect values. 

You can see if calibre has finished by (in calibre) clicking the Library button, choosing "Library Maintenance", then "Library metadata backup status".

You can avoid this problem by ensuring that calibre has finished writing the files in one of two ways:

  • Leave calibre running until the metadata backup status says that it is finished.
  • Run the calibre command line program "calibredb backup_metadata". The files will be up to date when it finishes.

    Advanced idea: you might consider putting this command in a script that you use to start calibre so that the files written as soon as possible. On windows the script file (a .bat file) might contain:

calibre
calibredb backup_metadata

The calibredb command will write any out-of-date metadata.opf files, then exit.

Note: connecting to calibre using the wireless device connection will automatically update the values of all metadata, including composite columns.

CC V4: CC does not contain calibre's template processor so cannot compute them. The result: the values are empty. Upgrade to CC V5.


How do I use an SD card with Android 4.4 (Kitkat) or later?

$
0
0

Using CC V5 or later with Android 5 (Lollipop) or later:

CC V5 supports Android's "Storage Access Framework", so you can put your books anywhere on the SD card. When you use CC's Settings / Formats and Folders to change where your books are stored, CC opens an Android "chooser" where you can navigate to where you want to store your books. First open the drawer on the left by tapping the three lines in the upper-left corner or by swiping from left to right, choose which storage to use, then navigate to the folder you want to use. You can create folders in the chooser using the button showing a folder with a "+" in it.
 
Important: if you don't see your SD card or main memory listed in the drawer, tap the three dots on the upper right and tap "Show SD card".
 
Note that CC does not support this feature on devices running Android 4.4 (Kitkat).
 

Using CC V4 or earlier with Android 4.4 (Kitkat) or later, or using CC V5 or later with Kitkat:

Unfortunately, Android 4.4 Google has made using SD cards very difficult. For a variety of reasons such as preventing one app from tampering with another app's data, the SD card has in effect become "read only" for all folders except for one specific folder per app. If you click here to do a google search for kitkat sd card support you'll find lots of posts discussing this change, and explaining the pros and cons of Google's decision.
 
Google added more features in Android 5 (Lollipop) that made it practical again to support SD cards. Those features were not added to Kitkat.

The result: CC can write books only into on the SD card into a private files folder that gets deleted when you delete the associated app. Consequently a) there is only one folder on the SD card where CC can store your library, and b) that your library will be deleted from your SD card if you ever uninstall CC or cleared CC's data. To repeat: if you use Android 4.4 and put your library on an SD card, your books will be deleted if you uninstall CC. There is absolutely nothing we can do about this.

The name of an app's private folder is set by Android. For CC, that name is Android/data/com.multipie.calibreandroid/files

If you upgraded to KitKat and your library is in a no-longer-writable folder on the SD card, then there are three ways to recover:
  1. Assuming you accept the risk of your books being deleted, starting in CC 3.3.5 you can move your books to CC's private folder on the SD card. See the answer  How do I choose which formats calibre sends and where the books are stored? for how to move your library. Use the "SD Card" button when selecting the folder (button only visible on Android 4.4).
  2. You can move your library to your phone's internal memory. It will then work as before. See the answer  How do I choose which formats calibre sends and where the books are stored? for how to move your library.
  3. You can root your device and remove the restriction. Not something we'd recommend or can support.
Option 1 also works to move your library from internal memory to your SD card, something you should do only if you accept that uninstalling CC or clearing its data will delete your books.

Important note for options 1 and 2: CC will be unable to delete the files from the old folder on the SD card. You must delete them yourself by putting the SD card into a card reader or using one of the few file manager apps that (currently) can manipulate SD cards.

If you are running a version of Android less than 4.4, you can still put your library in an arbitrary folder on an SD card, although you might not want to do that if your device is susceptible to being upgraded to KitKat. See the answer  How do I choose which formats calibre sends and where the books are stored? Using SD cards is explained at the end of the answer.

The following documents one user's experience with option 1, documenting the steps he followed:
Quote:
Originally Posted by dfrye View Post
Just a followup to V3.3.5 (Thanks chaley!!) for anyone with existing books on the sdcard. To start the conversion process you need to change the default dir for the books (app menu> Settings > "Book Formats and Folders") Note where the files are currently stored. You will need this info to manually clean up later. Tap on the default folder and get a dialog with a short summary of this thread. Click on the suggested folder name (not the Choose Folder button). The program will copy the existing books to the new folder. Make sure there is enough room on the sdcard for the copied books. It may take a while to copy. Once it is done you will get a error message for each of the books that it was not able to delete the old files. That's OK. At this point Calibre Companion will work normally. The old copy of the books are still on the sdcard. To free up the space you will need to delete the old books using other means. Either use a file manager that knows how to get past KitKat to the delete files on the sdcard or pull the sdcard and plug into a PC.
And another user's experience with adding an SD card to a new tablet:
Quote:
Originally Posted by kaufman View Post
I just made an interesting discovery that should probably be added the the FAQ. I purchased a new tablet, and moved my SD Card with an existing calibre companion directory of ebooks to it. I deleted all the books with the file manager and tried to copy them again with CC. It didn't work. I needed to uninstall CC, delete the entire CC structure on the SD card and then reinstall CC. It recreated the directory and then everything worked.
_

How do I choose which formats calibre sends and where the books are stored?

$
0
0

Unlike most devices that calibre supports by cable, you control in the Calibre Companion which formats are to be sent along with their priority on the device. This helps if you have multiple devices for which you want to use a different list or different priority.

To set up the extensions, click the menu button on your device (usually three dots), choose "Settings".

Now choose Book formats and folders

Next, scroll through the long list of extensions and check the ones you want calibre to be able to send to your device. Don’t try to order them at this point, it is easier to do in a second pass.

After you have "checked" all the extensions you want to use, it is time to set their priority. This is easiest to do if you close and reopen the dialog, because all the checked extensions will be at the top. So press OK, then reopen the dialog. Now use the arrows to move the selected extensions up and down. The higher an extension, the higher its priority.

You can use this dialog to change the folders where extensions are stored. See the following image of the extensions dialog.

To change the default folder (the one used if no specific folder is chosen for an extension), open the extensions dialog and click where the "1" points. To change the folder for a specific extension, click below the arrows on that extensions line. Number "2" in the dialog image shows where you would click to change the folder for epubs. You will see a dialog that tells you where the files are currently stored. Click the "Change" button if you want to change it.

In the Kindle for Android case, after having changed the storage folder, selecting K4A as the reader will start K4A at its home screen. It will import the books you have sent to Calibre Companion so you can read them. Please see  Using Kindle for Android with Calibre Companion on integrating with Kindle for Android.


Using SD Cards
:

If you are running Android 4.4 (KitKat) or later, please see How do I use an SD card with Android 4.4 (Kitkat) or later? for more information.

If you are using a version of Android less than 4.4 then you can change the folder that CC uses to an arbitrary folder visible on your SD card. To do this, click the "Change folder" button, enter the path that will contain the desired folder into the box (the default is "/", the root of the file system), then tap the "Browse" button. The screen will show the contents of that folder ("/" by default). You can navigate from there, creating folders as necessary and allowed by Android. For example, if you enter "/mnt" into the box or tap "mnt" while viewing the root then you will see all the folders inside /mnt. Probably one of the folders will be the SD card. Note: some devices do not allow writing to SD Cards. If your device is one of these, then CC cannot put books onto that card.

I rooted my device and disabled the Kitkat SD card restrictions. How do I tell CC to ignore the restriction?

$
0
0

If you have rooted your device and removed the SD card restrictions, go to CC's "Other" settings and check the "SD Cards on Android 4.4". This option tells CC to ignore the SD card rules so you can navigate anywhere on the SD card.

Note 1: checking this option does not remove the restriction in Kitkat. If the folder(s) you choose are not actually writable, CC will fail to connect.

Note 2: this option has no effect if your device is running Android 5 (Lollipop) or later.

How do I reinitialize CC without reinstalling the app?

$
0
0

There are two different ways to reinitialize CC, removing all books from the device and from CC's library.

1. Uninstall and reinstall. The steps:

  • Using a file manager, delete all the book files from the folder(s) where CC stores books.
  • Do one of the following to reset CC to how it was when it was initially installed: all settings and the book database are reset.
    • Uninstall and reinstall CC
    • Go to Android Settings / Apps / Calibre Companion and choose "Clear Data".
  • If you want to preserve all your settings then see the FAQ [URL="http://cc_faq.multipie.co.uk/index.php?solution_id=1090"]How do I reinstall CC without losing all my book information?[/URL]. Do the backup first, then the steps above, then the restore. When doing the restore ensure that "Restore CC book database" is not checked.

    Alternatively, use the method described below.

2. Do the operation in CC. This method automatically preserves your settings. The steps:

  • As above, delete all the book files
  • Start CC, go to CC's menu, and choose "Books with missing files". You should see a booklist, one book for each book file you deleted.
  • Tap the "Delete All" button. You should see an empty bookcase
  • Tap the back button twice to go back to the main library. You should now see the empty library screen.

How can I see my custom "columns made from other columns" in the Cloud Connection's top-level list?

$
0
0

Requires CC V5.1.1 and later and calibre 2.54 and later

If CC and calibre are new enough then the CC can show custom "columns built from other column" (composite columns) in the top-level display of the Cloud Connection. CC requires that the values be stored in the calibre database by an optional calibre plugin. The plugin, a Library Closed plugin named Save Composite Custom Columns, is available in this MobileRead post, in calibre's Index of Plugins page and through calibre's Get Plugins feature (Preferences / Plugins / Get new plugins).

After you install the plugin in calibre then open your library in calibre's GUI. When you close the library (the GUI) the plugin will save the information. You will see a notification while calibre is closing. Next do whatever you normally do to sync your library with the cloud provider. The next time CC opens that cloud library you will see the composite columns listed in the top-level display. The plugin will run every time you close your library so that the information in CC will be up-to-date.

If the plugin is not installed or has not run then you will not see the composite columns.

Note: the plugin is not run when you use calibre's command line to modify metadata for books. You must run the calibre GUI to run the plugin and update the information.

Using Kindle for Android with Calibre Companion

$
0
0

Using Kindle for Android (K4A) with CC + calibre presents challenges. The first is the Digital Rights Management (DRM) applied by Amazon to most books. The second is that the K4A application is strange, not implementing normal Android features.

1) DRM Applied to Books

Amazon "locks" most books you buy from them using DRM. Amazon's intent is to prevent people from reading books that they didn't buy. Unfortunately, the DRM can also prevent you from doing reasonable things like using CC & calibre effectively. Because Amazon's DRM is per-device not per-user, you cannot read a book on device A that is downloaded on/for device B. Said another way, you cannot download a book on your computer to be read with Kindle for PC/Mac then expect to be able to read that book in K4A without downloading it again. Also, you can read DRM-protected books only in K4A. You cannot use a different reader app. For these reasons many people remove (strip) Amazon's DRM on books they buy when the book is loaded into calibre, using a calibre plugin provided by Apprentice Alf and friends. Stripping the DRM allows you to read your book on any of your devices using any reader app you choose.

2) K4A Strangeness

K4A is one of the very few reader apps on non-Amazon devices that does not publish to Android the kinds of books that it can open, and does not provide a way for another app to tell it to open a book. These Amazon choices mean CC cannot open books in K4A. There is nothing we can do about this.

On Amazon devices, CC can ask the builtin reader app to open a book, but unfortunately doing so automatically resets the reading position to the beginning of the book. Again, there is nothing we can do about this.

You can resolve these problems one of two ways:

1) Use a different reader app that can open Amazon formats such as mobi, AZW and AZW3 and remember the reading position. There are several. If you go this route and want to sync reader positions across devices then you might want to look at our FAQ answer Problems with syncing read positions in reader apps like Moon+.

Note: You can use a different reader app only if your books have been stripped of Amazon's DRM.

2) Change CC's storage folder to K4A's books folder. This is a partial resolution in that it permits K4A to open books, but does not fix the "CC cannot tell K4A to open a book" problem. On non-Amazon devices the K4A folder's name is "kindle". On Amazon devices such as a Fire tablet the folder name is "Books" (this is CC's default on Amazon devices).

To change the folder CC uses for amazon books see How do I choose which formats calibre sends and where the books are stored? for instructions. Be sure to enable (check) the Amazon formats you want to use.

Important: if you have not stripped the DRM from your books then K4A can open a book only if it was downloaded by (or specifically for) that device. You cannot read the books on a different device, which means that there is no point in sending the books from calibre to that different device.

Important: K4A does not support subfolders in the "kindle" folder. Because of this restriction, when using K4A you must not use a save template that sends books to subfolders. Neither the default calibre save template for the wireless device nor the default template used by the Content Server and Cloud Connections use subfolders. If you have changed these templates then you must change them not to use subfolders. You might want to consider using CC's file template everywhere so you can be sure that the same file names are used by all three of the CC connection types.

When you change the storage folder, books in CC will be moved to that folder and books sent in the future will be stored in that folder. The next time K4A is started it will import the books you have sent to Calibre Companion so you can read them.

How do I get the same file names in CC no matter which connection I use?

$
0
0

[This answer is valid for CC V4.1 or later. Solution 1, our recommended solution, requires calibre 2.32 or later.]

There are three solutions to ensuring that file names for a book are the same on multiple devices regardless of the delivery path. You might want to use one of these solutions if you are using a reading app that is capable of syncing reading positions across devices, such as Moon+.

CC settings mentioned below are found in CC / Settings / File names.

If none of the CC file name settings are chosen, CC's wireless device connection will use the file name provided by calibre, and CC's Cloud and Content Server connections will use the default CC template.


Solution 1: Use CC template everywhere (recommended. Requires calibre 2.32 or later)

If you use more than on CC connection type (Cloud, Content Server, Wireless Device) then the recommended solution is to check the box "Use CC template everywhere". This tells CC to ignore any file name provided by calibre, instead computing the file name itself using a simplified form of a calibre file save template. The default template is

{title} - {authors}

If you don't want to use the default template then after you check the box you should go to book details for some book and select "Edit file name template" on the book details menu. A dialog will open showing you the current template and what file name it generates for the book you see in book details. See What can I use in a CC file name template? for more information about CC file name templates.

Note: unless you also check the box "Replace existing book files" in CC's settings, sending a book to the device via the wireless device that calibre knows is already on the device will not evaluate the template. Instead it will overwrite the existing book file to prevent having multiple copies of the book on the device. Checking the "Replace ..." box tells CC to evaluate the save template, renaming the existing book file if necessary 

Solution 2: Use calibre's unique book ID as the file name.

Check CC's setting "Use book ID as filename" (Settings / File names). This tells CC to use the book's unique ID as the file name no matter how the book gets to the device. Although this works well for syncing (which is why the option was added), it has the problem that the book file names become meaningless; a series of numbers. Don't use this solution if you ever look at the file names of books on the device.

Solution 3

If you use the content server but do not use CC Cloud, check "Use calibre's file name" in CC's settings. This tells CC to ask the content server for the file name the wireless device would use.

This solution works if you are running the content server in calibre's GUI. If you are running it from the command line then the content server will not be able to get the file name from the wireless device, in which case you must use the first or second option.

Don't use this option if you use CC's cloud connection.


How do I setup Calibre Companion to connect to calibre?

$
0
0

We have tried very hard to make Calibre Companion able to automatically connect to calibre in many different network setups and situations. Unfortunately there are as many different network setups as there are networks and operating systems, and some combinations are unusual or complicated enough to defeat auto-connection.

First, try setting up automatic connection. To do this, first ensure that you have started the wireless device driver in calibre. Click on Connect/Share, then “Start wireless device connection”.

Now attempt to connect CC to calibre. In CC, tap Connect, then As Wireless Device. Normally this is all you will need to do. Note: devices connected by a USB cable to the computer running calibre can interfere with CC's connections, especially if the devices are readers or phones. Unplug them and try again before going to the next steps.

In some situations where the networking setup is unusual or complex, Calibre Companion will fail to connect. If this is your situation, continue with the steps below to troubleshoot the problem.

  1. Check that your firewall is allowing calibre to send and receive messages. For example, in Windows 7, go to the control panel, select Windows Firewall, and click "Allow a program or feature through Windows Firewall". Scroll down the list until you see "The main calibre program". Ensure that it has a check mark on the left side and (at least) in the "Home/Work (Private) column.

    Some firewalls don't support application-based permissions, in which case you will need to use a fixed port (see below) and open that port in your firewall.

    As there are many firewalls, most of which we do not have, we are unable to give more instructions for opening a port in the firewall. However, if you have McAfee, user feedback indicates that two settings must be checked: which programs are allowed to access the internet and whether the "home network" is trusted. Calibre should have "Full" access to the internet and the home network should be marked as fully trusted. If you look at the network map in McAfee, you should see your device and it should be trusted.
  2. Check that your antivirus/antimalware package is not blocking connections. This is not a problem if you are running Microsoft Security Essentials. We have heard that MalwareBytes and "ESET Smart Security" can block connections between CC and calibre. In general, if you are running a network "Security Suite" then be sure that it allows traffic to and from calibre. One way to do that might be to "exclude" calibre from checks. It is also possible that you will need to use a fixed port (see below).
  3. Check if the computer running calibre is also using a Virtual Private Network (VPN). If you don't know what a VPN is then you probably aren't using one. Smile Using a VPN can make it impossible for Calibre Connection to connect to calibre. If you are in this situation then the only solution is to turn off the VPN.
  4. If the computer running calibre is running Windows, verify that the "Network Location" for the connection is not "Public", but is instead "Home" or (on Windows 7) "Work". If the network location is Public then your device will not be able to connect to calibre. The tutorial Simple Questions: What are Network Locations in Windows 7 & Windows 8? might help verify and, if necessary, change the setting.
  5. If the computer running calibre is using WiFi to connect to the network, check that it is using the same network "band" that the Android devices are using. Many home routers come with 2 WiFi bands: 2.4 GHz and 5 GHz. Devices using one band often cannot talk to devices using the other band. Either ensure that all the devices including the computer running calibre are using the same band, or ensure that your router permits devices on one band to talk to devices on the other.
  6. Check if your WiFi router is using "Guest Mode" or "Wireless Isolation". Wireless isolation and guest mode are two different techniques for securing a wireless network. Although the details are different, they both prevent wireless devices from connecting to computers using a cabled connection, and in many cases prevent wireless devices from connecting to other wireless devices. How these are set up varies a lot from router to router. For more information about these two modes, see  Why does enabling wireless Guest Mode or Wireless Isolation prevent CC connections?.
  7. If you still cannot connect and if you are running Windows, you can determine if something on the machine running calibre is blocking connections by starting windows in "Safe mode with networking". How you start windows like this depends on the version of windows you are running. Use these instructions if you are running windows 8 or 8.1. Use these instructions if you are running Vista or Windows 7. Once your computer is running in safe mode with networking, start calibre and attempt to connect CC. If it connects then some software on your computer is blocking connections, almost certainly a firewall, anti-virus, or "network security suite". NB: sometimes safe mode with networking does not work if your computer is connected to the network using WiFi. You can check this by trying to go to some internet site using whatever web browser you normally use.
  8. If after making the above checks Calibre Companion still cannot connect to calibre then the next step is to use a fixed port and enter calibre’s IP address and port into Calibre Companion. See the instructions below.

Using a fixed IP address and port
If Calibre Companion does not connect automatically and you went through the steps described above, then telling CC to connect using a fixed IP address and port might fix the problem. An IP address is a group of 4 numbers separated by periods, for example 192.168.0.44 , and a port is a single number, for example 9090.

First, follow these steps to try using a fixed port:

  1. In calibre, go to wireless connection menu shown above. If it says "Stop wireless device connection", click it and answer the question about auto-connection (however as you wish), then click the menu "Start wireless device connection" again. You will see the following dialog box.

    Check the box "Use a fixed network port". Change the default port number (9090) if you wish. You must not enter the same port used by calibre's content server. Press OK. Calibre will complain if there is a problem with the port, for example if it is being used by another application on your computer.
  2. Be sure that any firewall you are running on the computer running calibre allows incoming connections to the chosen port.

Before going on to the next steps, try to connect Calibre Companion to calibre. In many situations, simply setting a fixed port in calibre and opening that port on your the firewall will be enough to permit Calibre Companion to connect.

If connection still does not work, then the next step is to enter calibre's IP address into Calibre Companion. Follow the steps below to do this.

  1. Click again on calibre's connect/share menu. Assuming that the wireless driver is running (a green dot is shown next to the menu line), you will see calibre’s IP address and port on the menu line. If you do not see the port then something went wrong when you checked the "Used fixed port" box as described above and you should follow those instructions again. If all went well, you should see something similar to the following:

    Make a note the displayed IP address and port.Important note: If you see more than one IP address, read the answer to "My computer has more than one IP address. Which one do I use?" below.
  2. Enter calibre's IP address into Calibre Companion on your device. To do this, tap CC's “Settings” menu item.


    You will see this dialog.


    Tap"Connection Settings" to open the following dialog


    Tap the Wireless Device Connection line. The following dialog opens.


    Tap "IP address and port" to enter the IP address.

    Enter the IP address and port that you saw in the step above. You must enter the IP address exactly as it was shown in calibre, without any spaces or extra periods.

    As an aide, Calibre Companion's dialog shows you the IP address of your device. The IP address for Calibre you noted should be very similar to the one CC shows. For example, if your device's IP address begins with 192.168.203 then calibre's IP address should also begin with 192.168.203. 

    You must always enter both an IP address and a port number. You must not enter the port used by calibre's content server or any other web server.

If after all of this Calibre Companion still cannot connect, ask for help on our support forum. Calibre Companion's help menu has a button that will connect you to the forum. You will need to have a user name and password; create these if necessary. In your post, please give us all the IP addresses that calibre displays, and the IP address of your device you found as described above. Also give us the port number that you set up.

Connections worked, but have stopped working

It is possible that connections work for a time then stop working. The most common reason connections stop working is a calibre was updated and is no longer allowed through the filewall, or that the antivirus has updated itself and now thinks calibre is malware. Check the settings as described above.

Another possibility is that you put an IP address into CC, and subsequently the computer running calibre changed its IP address. The can happen if that computer has not connected to the home network for some time (e.g., a laptop that was traveling), or if there was a general power failure and the home network controller box (the "router") was restarted. If Calibre Companion has been successfully connecting but suddenly stops, then verify that the IP address entered in Calibre Companion still matches the one displayed by calibre. If it does not, then change the address in CC to match the new IP address shown in calibre.

Technical note 1: You can avoid having calibre's IP address change by setting up a "static lease" for that computer in your home network router. How to do this, or even if it can be done, depends on your router. The setup is usually in the DHCP setup section. Check the manual for your router to see how to set up static leases. Note that your router may call these something else, such as fixed IP addresses or static IP addresses.

Technical note 2: Calibre Companion will accept domain names in lieu of IP addresses. This can be useful if you are on a routed network or if calibre is on a machine that doesn't have a fixed IP address and you have access to a dynamic DNS server.

 

I saw a pop-up message saying calibre might show the wrong number of books. Why?

$
0
0

In calibre, a device driver like the wireless device connection is not allowed to change the file path specified by calibre. The "rules" say that calibre is in charge.

If you are using CC's file templates and if the "Replace existing book files" option is checked, it is possible for CC to change the file name for a book, for example if the title changes and the title is part of the file name. This creates a situation where CC break the calibre rule, changing the file name without calibre's permission. The result: calibre thinks the file with the new name is a new book. Until you disconnect you will see both the old and the new book in calibre. If you disconnect and reconnect, the problem goes away. CC and calibre will agree about what is on the device.

We understand that this behavior is confusing. To help with the confusion, we show a pop-up message (a "toast") on the device running CC saying that calibre might show the wrong number of books.

There is no mechanism for us to show a message in calibre.

 

Why can't I install CC on Nook android devices?

$
0
0

News: as of early May 2013, the Nook HD and HD+ devices can purchase apps (and other stuff) from the Google Play store. This change makes it possible to obtain CC for these devices.

Some Nook devices run a version of Android that is too old to support CC. The device must be running Android 2.3 (Gingerbread) or later.

I have added a lot of books on an SD card and now downloading books takes forever. What do I do?

$
0
0

SD cards usually use a FAT32 file system. Directories (folders) in FAT32 are not indexed, so whenever CC creates a file the operating system (Android) must do a linear search (1st, 2nd, 3rd, 4th ... position) in order to see if the file is already there. The file is (almost) never there, so the time required is the worst case: a search of all the files in the directory. Clearly the more files in the directory the slower Android will run. For example, if there are 3,000 books in a directory, doing the check will run 3,000 times slower than when the library was empty.

Limiting the number of entries in any given directory will help avoid this slowdown. You can do this by using a file save template that limits the number of entries in any one directory.

We ran three experiment to illustrate the problem/solution. Each experiment uses a different CC file template. The first template stores all the books in one folder, using no sub-folders (a one-level hierarchy). The second template creates a folder per first-author then stores the book (a two-level hierarchy). The third creates a folder per first letter of the first author, then a sub-folder per author (all beginning with the same letter), then the book (a three-level hierarchy).

The device is a Fire 7/rooted running CM12. The device is located next to the WiFi hub for optimal network performance.

For each experiment we cleared CC's library then sent the same 600 books to the sd card in the same order. The 600 books had 287 authors.

Results:

Template Total time
min:sec
Avg time
per book
in seconds
Avg time
first 10 book
in seconds
Avg time
last 10 books
in seconds

{title} - {authors}

20:15

2.025

0.65

3.2

{first_author}/{title} - {authors}

11.09

1.115

0.65

1.2

{first_author:%1.1s}/{first_author}/{title} - {authors}

6.32

0.653

0.65

0.65

 

We see that with the flat template (the first one), at the 600th book the time to save each book is approximately 6 times worse than for the first book. For the second template (directory per first-author) the average time for the last books is approximately 2 times worse than the first. For the third (directory per author first-letter then per first author), the average time for last ten books is the same as the first ten.


At 3,000 books and using the first template, the time to store a book should be approximately 16 seconds, or approximately 4 books per minute. For the last template, that time would probably still be very close to 0.65 seconds which is approximately 90 books/minute.

Notes

  1. You must set CC's option Settings / File names / Use CC template everywhere if you want to use a CC template to create sub-directories. We recommend that you also set the option Replace existing book files.

  2. Simply changing the template after you have downloaded a lot of books won't fix the problem. The directories are already large. Assuming you are using the Replace existing book files option, you must resend the books already in CC's library so that they will be moved to the appropriate sub-directories. Alternatively you could reinitialize CC's library and resend all books.

  3. Android internal memory uses a file system that does not have this problem. It is near constant time regardless of the number of files. This is why we don't see these performance problems when using internal memory.

How do I reinitialize CC without reinstalling the app?

$
0
0

There are two different ways to reinitialize CC, removing all books from the device and from CC's library.

1. Uninstall and reinstall. The steps:

  • Using a file manager, delete all the book files from the folder(s) where CC stores books.
  • Do one of the following to reset CC to how it was when it was initially installed: all settings and the book database are reset.
    • Uninstall and reinstall CC
    • Go to Android Settings / Apps / Calibre Companion and choose "Clear Data".
  • If you want to preserve all your settings then see the FAQ How do I reinstall CC without losing all my book information?. Do the backup first, then the steps above, then the restore. When doing the restore ensure that "Restore CC book database" is not checked.

    Alternatively, use the method described below.

2. Do the operation in CC. This method automatically preserves your settings. The steps:

  • As above, delete all the book files
  • Start CC, go to CC's menu, and choose "Books with missing files". You should see a booklist, one book for each book file you deleted.
  • Tap the "Delete All" button. You should see an empty bookcase
  • Tap the back button twice to go back to the main library. You should now see the empty library screen.

How do I reinstall CC without losing all my book information?

$
0
0

These steps assume that you can run CC. If you cannot then the only choice you have is to uninstall and reinstall the app, in which case you will lose the data and settings currently stored in CC.

First, if you are running CC V4.1.4 or earlier, upgrade to CC 4.1.5 or later.

The steps are (overview):

  1. Backup CC's settings and database
  2. Uninstall and reinstall CC
  3. Restore the backup you made in step 1 being sure to check the box "Restore CC book database".

 

The steps are (details):

  1. Backup CC's settings and database.
    1. Start CC.
    2. Go to Settings, scroll to near the bottom.
    3. Tap "Backup and Restore".
    4. Tap "Backup CC settings & database". Be sure that all three backup check boxes (settings, folder locations, database) are checked.
    5. Enter a file name where the settings and database are to be saved. Be sure to note where this file is saved as you will need it later.
    6. Press OK.
  2. Uninstall CC however you do that on your device. Normally this is in Android Settings / Apps.
  3. Reinstall CC using whichever app store (Google Play or Amazon) you normally use.
  4. Start the newly-installed version. You will see the "No books" image.
  5. asdasdasd
    Restore the settings and database you saved earlier. 
    1. Go to CC's Settings / Backup and Restore.
    2. Choose "Restore CC settings & database".
    3. Check the box "Restore CC book database". Don't uncheck the other two boxes.
    4. Choose the correct backup file (the one you made above).
    5. Press OK.

When the restore finishes CC should be showing your library. If it is showing the "no books" image, check that nothing is selected in the grouping drawer.

  1. If you are running Android 5 (Lollipop) or later and if your books are on an SD card, it is likely that you will need to select the book folder again in CC.
    1. Go to CC's Settings / Formats and folders.
    2. Tap the "Default folder" line at the top.
    3. Select "Choose Folder". The Android chooser dialog will open.
    4. Navigate to the folder on the SD card containing your books.
    5. Tap the "Select" line that is usually at the bottom of the screen.
    6. Repeat steps 2 - 5 for each extension that has a specific folder.

I bought CC but it keeps telling me it isn't licensed. What do I do?

$
0
0

This happens if you are not connected to the internet when you connect to calibre as a wireless device, for example if your home network normally has no internet connection.

You can fix this problem by doing the following steps 1 time.

  1. Ensure that your device is connected to the internet. This can be on your home network after connecting to the internet, in a coffee shop, or via a cellular link (tethered or native). If via a native cellular connection (one on the device in question, not tethered), be sure to tell CC that connecting over "3G" is permitted (Settings / Connecting to calibre / Wireless device connection/ IP address and port / Allow connecting using 3g)
  2. In CC, attempt to connect to calibre as a wireless device. This connection will probably fail because your library isn't visible, but in the meantime CC will verify your license.
  3. Reset your network to what you normally use.

CC will remember the license until it is uninstalled or you do a "Clear Data". In these cases you will need to do the above steps again.


How do I choose which formats calibre sends and where the books are stored?

$
0
0

Unlike most devices that calibre supports by cable, you control in the Calibre Companion which formats are to be sent along with their priority on the device. This helps if you have multiple devices for which you want to use a different list or different priority.

To set up the extensions, click the menu button on your device (usually three dots), choose "Settings".

Now choose Book formats and folders

Next, scroll through the long list of extensions and check the ones you want calibre to be able to send to your device. Don’t try to order them at this point, it is easier to do in a second pass.

After you have "checked" all the extensions you want to use, it is time to set their priority. This is easiest to do if you close and reopen the dialog, because all the checked extensions will be at the top. So press OK, then reopen the dialog. Now use the arrows to move the selected extensions up and down. The higher an extension, the higher its priority.

You can use this dialog to change the folders where extensions are stored. See the following image of the extensions dialog.

To change the default folder (the one used if no specific folder is chosen for an extension), open the extensions dialog and click where the "1" points. To change the folder for a specific extension, click below the arrows on that extensions line. Number "2" in the dialog image shows where you would click to change the folder for epubs. You will see a dialog that tells you where the files are currently stored. Click the "Change" button if you want to change it.

In the Kindle for Android case, after having changed the storage folder, selecting K4A as the reader will start K4A at its home screen. It will import the books you have sent to Calibre Companion so you can read them. Please see  Using Kindle for Android with Calibre Companion on integrating with Kindle for Android.


Using SD Cards
:

If you are running Android 4.4 (KitKat) or later, please see How do I use an SD card with Android 4.4 (Kitkat) or later? for more information.

If you are using a version of Android less than 4.4 then you can change the folder that CC uses to an arbitrary folder visible on your SD card. To do this, click the "Go to folder" button, enter the path that will contain the desired folder into the box (the default is "/", the root of the file system), then tap the "Browse" button. The screen will show the contents of that folder ("/" by default). You can navigate from there, creating folders as necessary and allowed by Android. For example, if you enter "/mnt" into the box or tap "mnt" while viewing the root then you will see all the folders inside /mnt. Probably one of the folders will be the SD card. Note: some devices do not allow writing to SD Cards. If your device is one of these, then CC cannot put books onto that card.

What do the home screen widgets and shortcuts do?

$
0
0

CC V3.6.4 added home screen widgets and shortcuts.

The home screen widgets show the last few books that you have read by using CC's launch reader app function: long press on a book or the "Read" action in Book Details. They are automatically updated every time you read a book from CC. If there are no books in your library or if you have never launched a reader app, the widgets will show placeholders such as an empty bookshelf or 'Droid browing books.

There are four widgets:

  • A cover list: this widget shows a vertically scrolling list of covers of the last books you have read, with the latest at the top.
  • A stack view: this shows the covers of the last books you have read in a stack. Flicking down will reveal the next-oldest cover. Flicking up reveals the next-previous cover.
  • A booklist view: this is a scrollable list similar to CC's booklist, showing a thumbnail of the cover, the title, the authors, and the series if there is one.
  • A single-row grid: This shows the last few read books (you choose the count) from left to right. It cannot be scrolled.


It is possible that you "accidentally" read a book and it now appears in the widgets when you don't want it to. You can remove a book from the widgets in Book details. Click on the menu icon (the 3 dots) and choose "Remove from home screen widgets." Nothing bad will happen if you remove a book from the widgets that isn't there.

Home screen shortcuts, created in Book Details, will launch a reader on the book that the shortcut represents. There is no notion of "last read"; a shortcut can be created for a book that has never been read. One could use this feature to make shortcuts for reference books, books you intend to read, or books you are currently reading. Once created, a shortcut will remain on the home screen until you delete it.

I have added a lot of books on an SD card and now downloading books takes forever. What do I do?

$
0
0

SD cards usually use a FAT32 file system. Directories (folders) in FAT32 are not indexed, so whenever CC creates a file the operating system (Android) must do a linear search (1st, 2nd, 3rd, 4th ... position) in order to see if the file is already there. The file is (almost) never there, so the time required is the worst case: a search of all the files in the directory. Clearly the more files in the directory the slower Android will run. For example, if there are 3,000 books in a directory, doing the check will run 3,000 times slower than when the library was empty.

Limiting the number of entries in any given directory will help avoid this slowdown. You can do this by using a file save template that limits the number of entries in any one directory.

We ran three experiment to illustrate the problem/solution. Each experiment uses a different CC file template. The first template stores all the books in one folder, using no sub-folders (a one-level hierarchy). The second template creates a folder per first-author then stores the book (a two-level hierarchy). The third creates a folder per first letter of the first author, then a sub-folder per author (all beginning with the same letter), then the book (a three-level hierarchy).

The device is a Fire 7/rooted running CM12. The device is located next to the WiFi hub for optimal network performance.

For each experiment we cleared CC's library then sent the same 600 books to the sd card in the same order. The 600 books had 287 authors.

Results:

Template Total time
min:sec
Avg time
per book
in seconds
Avg time
first 10 book
in seconds
Avg time
last 10 books
in seconds

{title} - {authors}

20:15

2.025

0.65

3.2

{first_author}/{title} - {authors}

11.09

1.115

0.65

1.2

{first_author:%1.1s}/{first_author}/{title} - {authors}

6.32

0.653

0.65

0.65

 

We see that with the flat template (the first one), at the 600th book the time to save each book is approximately 6 times worse than for the first book. For the second template (directory per first-author) the average time for the last books is approximately 2 times worse than the first. For the third (directory per author first-letter then per first author), the average time for last ten books is the same as the first ten.


At 3,000 books and using the first template, the time to store a book should be approximately 16 seconds, or approximately 4 books per minute. For the last template, that time would probably still be very close to 0.65 seconds which is approximately 90 books/minute.

Notes

  1. You must set CC's option Settings / File names / Use CC template everywhere if you want to use a CC template to create sub-directories. We recommend that you also set the option Replace existing book files.

    After you check the option you should go to book details for some book and select "Edit file name template" on the book details menu. A dialog will open showing you the current template and what file name it generates for the book you see in book details. Enter the template of your choice. See What can I use in a CC file name template? for more information about CC file name templates.

  2. Simply changing the template after you have downloaded a lot of books won't fix the problem. The directories are already large. Assuming you are using the Replace existing book files option, you must resend the books already in CC's library so that they will be moved to the appropriate sub-directories. Alternatively you could reinitialize CC's library and resend all books.

  3. Android internal memory uses a file system that does not have this problem. It is near constant time regardless of the number of files. This is why we don't see these performance problems when using internal memory.

What can I use in a CC file name template?

$
0
0

 

CC file name templates are similar to calibre templates. You can use some column names, a prefix, and a suffix, and printf-style format specifications. An if-then-else construct is available to support conditional text; this construct is not supported by calibre. It does not support template functions. 

  • The CC Template Language
    1. Basic syntax
      • The columns allowed are:
        • {title}, {title_sort} (title is the real title. No articles are moved)
        • {authors}, {first_author}, {author_sort}, {first_author_sort}
        • {series}, {series_index}
        • {id} (the calibre database identifier, which is a number)
        • text-type custom columns {#col_lookup_name}
        • (CC version 4.3.4 and later) custom series columns. A custom series lookup name such as #series returns the custom series name without the index, and the lookup name with _index appended (e.g., #series_index) returns the custom series index as a number.
      • Prefixes and suffixes are specified as in calibre:
        Code:
        {column:| prefix | suffix}
        Both the prefix and suffix part can be empty, as in:
        Code:
        {series:| - |}
      • Format specifications can be supplied as in calibre, but using printf format syntax instead of Python syntax. The usual use is to format a series index but it can be used for other purposes. Because series_index can be either an integer or a floating point number, you can supply two format specifiers: one for each. See the example below.

        Use this syntax to add a format specification:
        Code:
        {columnName:format|prefix|suffix)
        The prefix and suffix are optional, but if one is supplied then they both must be supplied. The format is also optional.

        A format specifier is a string beginning with a % character and ending with a format type character. Examples:
        • %d -- format as an integer
        • %04d -- format as an integer four digits long and zero-filled
        • %06.2f -- format as a floating point number 6 characters wide, zero-filled, with 3 digits to the left of the decimal point and 2 digits to the right of the decimal point.
        • %.10s -- format as a string to be at most 10 characters long.
        See printf format cheat sheet for more examples.

        As a special case, series_index can have two format specifiers, one to use if the index is an integer and the other to use if the index is a floating point number. The second format specifier is separated from the first by a slash. See the third example below for more details.

        As a second special case and starting with CC V5.1.5.1, you can use the format specifier allowslashes to tell CC not to strip slashes from template items during expansion. This permits storing paths in custom columns.
      • The following are examples of complete templates. The first has one segment (segments are separated by slashes):
        Code:
        {title} - {authors} ({id})
        The next has two segments:
        Code:
        {series}/{title} - {authors} ({id})
        This third example formats series index with leading zeros. Integer values are formatted with 3 digits. Floating point values are formatted to be 6 characters long: three digits to the left of the decimal point, the decimal point itself, and 2 digits to the right. In both cases the result is zero-filled.
        Code:
        {series} {series_index:%03d/%06.2f| [|]}/{title}-{authors} ({id})
    2. Conditional text (if-then-else) is specified as follows:
      Code:
      :if: some template :then: another template :else: another template :::
      CC will evaluate the template between the :if: and the :then:. If that evaluation results in a non-empty value then the :then: template is evaluated and the entire if-then-else is replaced with that result. If the evaluation of the :if: template results in an empty value then the :else: template is evaluated and the entire if-then-else is replaced with that value.

      Some notes:
      • The :else: part is optional: it is legal to have
        Code:
        :if: template :then: template 2 :::
      • In the then and else templates, the special value :tv: will be replaced with the value of the :if: template. (Yes, this doesn't have much use in the :else: part because it will always be empty.)
      • Spaces after the :if:, around :then: and :else:, and before ::: are removed.
      • You cannot nest an if-then-else inside another if-then-else. In other words, the following will not work because the second :if: is inside the first :else: part.
        Code:
        :if: {something} :then: bla :else: :if: {something else} :then: mumble ::: :::
      Some examples of if-then-else:
      • :if:{series}:then: :tv:/ :else:{first_author}/:::
        If the series is not empty then create a directory named by the series, otherwise create a directory named by the first author.
      • :if: {#genre} :then: {#genre:|Genre |} :else: {series:|Series ||} ::: {title}
        If the genre is not empty then prefix the title with Genre the-genre otherwise prefix the title with Series the-series if the series exists,
    3. CC's template processor "cleans" the result of the template as follows:
      • If a character is not in the following list then it is changed to undescore: letters, numbers, underscore, minus "-", ampersand "&", left square bracket "[", right square bracket "]", left parenthesis "(", right parenthesis ")", period ".", comma "," , slash "/", single quote "'", and equals "="
      • Multiple spaces are changed to a single space
      • Leading and trailing spaces in a segment (something between slashes) are removed
      • Leading and trailing periods in a segment are removed
      For example, if the two-segment example template above is used to generate a name for a book without a series, the result will be something like
      Code:
      bookTitle - bookAuthors (123)
      If the book has a series the result will be something like
      Code:
      bookSeries/bookTitle - bookAuthors (123)
  • Advanced Techniques
    It might be that you want to change the template based on some combination of metadata values. There are two ways to do this.
    1. Create a Yes/No column that is set to Yes for any book that would match the expression you want to use in the if test, otherwise set to empty. In this case the if test would be
      Code:
       :if: {#yesno_col} :then: {series_index:%04d} :else: {series_index:%04.2f}:::
    2. Use the order CC evaluates if/then within templates to insert information from calibre columns into the template. 

      CC evaluates the if/then/else parts, substitutes the results back into the template, then evaluates the template with the substitutions. This permits you to specify arbitrary template parts inside the if statement that are used when finally evaluating the template. Consequence: you can put templates or template components in calibre columns then use these in CC. For example, the following would use a CC template stored in a text column in calibre:
      Code:
      :if:{#sometextcolumn}:then: :tv: :else:{the default template}:::
      If #sometextcolumn contains
      Code:
      :if: {series}:then:{series:|_|}:else:{first_author} :::/{series_index:%04d/%07.2f|[|] - }{title} -  {first_author}
      then that is the template that would be used. 

      You can do the same thing with template components. For example, assume that #sif is a text column containing the format specifier to use for the series index for the book. The following template segment would use that format if it exists, otherwise %04d/%07.2f. You must use the allowslashes format specifier because the expanded item contains a slash that must not be converted to an underscore.
      Code:
      {series} {series_index::if: {#sif:allowslashes} :then: :tv: :else: %04d/%07.2f:::}
      To finish the example, if #sif contains %03d/%06.2f then after processing the :if:, the template would be
      Code:
      {series} {series_index:%03d/%06.2f}
      If #sif is empty then after processing the :if:, the template would be
      Code:
      {series} {series_index:%04d/%07.2f}
      In the end you could use a different series index format for every series.

Can I synchronize CC's Read and Date Read information with calibre?

$
0
0

Yes, as long as you are using calibre 1.28 or later. CC's Read information can be synchronized with a calibre Yes/No custom column, and CC's Date Read information can be synchronized with a calibre Date custom column. Syncing happens when you connect to calibre as a wireless device.

You set this up using the following steps:

  1. Create the Yes/No column in calibre. To do this, in calibre click on "Preferences" then "Add your own columns". Click the green Plus to add a new column. Click the "Yes/No" link under Quick Create. Fill out the fields as shown in this screen capture:

    You can choose whatever lookup name and column heading you want.

    Make a note of the lookup name. You will need it in a later step.
  2. Create the Date column in calibre. You do this in a way similar to that used when creating the Yes/No column. After clicking on the green Plus, set the column type to Date. Enter the text for the lookup name and column heading. As before, you can use choose different values for these two values.

    Again, make a note of the lookup name.
  3. Enter the column lookup names in CC's settings
    In CC, ensure you are not connected then go to Settings and scroll down until you find the "Marking Books Read" options. Tap the setting to open the following sub-dialog.

    Tap "Sync Column for Read". A dialog box will open where you choose the calibre Read Yes/No custom column.

    Choose the correct column and press OK.

    If you wish to sync the date read information, do the same thing for that column by tapping "Sync Column for Date Read" and choosing the corrent calibre Date custom column.
Viewing all 59 articles
Browse latest View live