Zotero can do this. It cannot always find the metadata but there are additional plugins available too. Additionally the browser plug-in allows you to easily find the item on a library’s site or Amazon and add the metadata and associate it with the pdf/other file.
It’s open source to boot.