Yep, got your gist now.
LT has concepts of "work", which is the generic published work (e.g. Little Women by Louisa May Alcott) and "book", which is the specific instance of the work as it appears in users' catalogs (e.g. Little Women by Louisa May Alcott, ebook, isbn, cover, my review, my rating, etc.)
I'm using the "JSON Books API" to return the list of users books. LT users are very protective of their book metadata, and I suspect any metadata updates should only come from their book metadata. Unfortunately, this API has no way to return a single book based on any identifier.
The "JSON Works API" returns a work based on an ISBN search, but can only be used once per second and up to 1000 times per day. This would be okay for editing metadata one at a time but not in bulk.
For the ID linking, my quick test worked great:
Code:
https://www.librarything.com/work/book/{id}
Simple as that. Would there be any concerns over updating that identifier outside of a metadata plugin? e.g. (cribbing from your Smashwords plugin):
Code:
mi = Metadata(...)
mi.set_identifier('librarything', librarything_id)
self.lt_id = librarything_id