Originally Posted by kovidgoyal
There are three stages to the metadata download process:
1) An identify stage: this uses isbndb and google books to get the book isbn from title/author or get the title/author from the isbn. This also queries the cover download plugins has_cover method
2) Social metadata download: This downloads tags/rating/comments/series based on the isbn from step 1
3) cover download. picks the first cover returned by the cover download plugins based on the metadata discovered so far. All builting cover download plugins use isbn.
Understood - I guess my concern is with stage 1. The behavior makes sense when a user clicks the 'fetch metadata' button, as you want to provide them with a list of choices. However there are at least two ways to download metadata which don't allow for user interaction - Bulk Metadata download and the 'download cover' button. Why iterate through every single possible record in those scenarios when the user isn't going to get any choice in the matter anyway? I'm looking at this from both a performance perspective of getting the information downloaded as well as load on the metadata providers that have varying levels of love of Calibre users.
I can see an argument for bulk fetches iterating through the ISBN's to the first ISBN that can be associated with a cover, but I don't see why it needs to keep going after that. The other issue is that as soon as an ISBN matches it begins using that title in the related cover searches, which in general is more likely to fail than the original cover, since more often than not that variant includes subtitle/series info (though the title cleansing discussed in the other thread could mitigate that somewhat).