This can be done with an automated script. You must point it to the right folder to read the images from, the rest can be done automatically.
size is among these, this script can locate candidates, and automatically replace it if there is only one. For safety measures, it checks if the file has the same file extension as well (and for this to work, it ignores case differences). The file is only replaced when there is exactly one candidate, so check the Linked Files list after running for left-overs.
The script first asks from which folder it should read the images from; the default is the folder containing the InDesign document, but you can navigate elsewhere as well.
findLostImages.jsx into your User Scripts folder. Then run it by double-clicking in your Scripts panel.
Run this on a saved copy of your original InDesign document. Due to the specific nature of this request, I could not thoroughly test it, and so if things go awry you'll be happy to have a backup.
//DESCRIPTION:Find lost images by size
// A Rad Lexus Script 31-Jul-2016
alert ('please open a document first');
problems = ;
path = Folder(app.activeDocument.filePath).selectDlg("Select file source");
// load the images in this folder
filelist = path.getFiles ('*.*');
// alert (filelist);
// loop over the images
for (i=0; i<app.activeDocument.allGraphics.length; i++)
// is it a linked file?
if (app.activeDocument.allGraphics[i].itemLink &&
size = app.activeDocument.allGraphics[i].itemLink.size;
extension = app.activeDocument.allGraphics[i].itemLink.filePath.substring
// check our list
matches = ;
for (j=0; j<filelist.length; j++)
// extension the same?
(filelist[j].fullName.lastIndexOf('.')).toLowerCase()) == 0)
// size the same?
if (filelist[j].length == size)
// did we find a match?
if (matches.length == 1)
if (matches.length == 0)
problems.push ('no match for '+app.activeDocument.allGraphics[i].itemLink.filePath);
problems.push ('multiple matches for '+app.activeDocument.allGraphics[i].itemLink.filePath);
alert (problems.join('\r'), 'Problems');