Album / Track Lookup Solution
Posted: Thu Jun 11, 2020 1:46 pm
tldr; replace your existing c:\Program FIles (x86)\Acoustica Spin It Again\acuutils.dll file with this alternate version (exactly the same, but url of musicbrainz lookup has been changed) and lookups will start working again! File locatated at: http://siamb.jhbsa.com/acuutils.dll (or as a signed installer package for ease of download/installation at: http://siamb.jhbsa.com/SIA-Lookup-Patch.exe )
I purchased Spin It Again back in 2008 to convert my vinyl LP collection to mp3. It did it's job and I was happy. I recently came into possession of another large set of albums and decided to add them to my digital collection. After dusting off and reinstalling Spin It Again, I realized (as others have noted in the forum) that album/track lookups returned no results. Being a software developer, I decided to look into the problem and see if I could do anything about it. It turns out that I could... and I did.
The root of the problem is that musicbrainz.org changed their database lookup api to a new version (v2) then deprecated and finally disabled their original api (v1). Spin It Again only knows how to make lookup requests to the old version 1 endpoint using the old protocol, and only knows how to consume responses compatible with the version 1 format.
The solution strategy... find a way to convert the v1 requests to v2 format, submit the v2 request to musicbrainz, receive the v2 response and convert it to a compatible v1 response, send the response back to Spin It Again for processing as usual. All of this is easy enough to figure out and do with a proxy web service. The challenge was 'how to get Spin It Again to ask the proxy for album info instead of musicbrainz directly. Some quick digging with a hex editor discovered the musicbrainz.org url hard coded in the acuutils.dll file. I then edited the file to replace the musicbrainz.org domain with the domain of my proxy script siamb.jhbsa.com and voila! Spin It Again can ask the proxy using v1 commands, and the proxy asks musicbrainz using v2 commands, and then transforms the results before sending them back to Spin It Again.
I'm currently using this solution with great success. I've occasionally discovered quirks in the response conversions and I've been tweaking the proxy to accommodate them. I plan to leave the proxy operational for the community to use. Feel free to use (but not abuse) the service.
Blessings to all. Be safe.
I purchased Spin It Again back in 2008 to convert my vinyl LP collection to mp3. It did it's job and I was happy. I recently came into possession of another large set of albums and decided to add them to my digital collection. After dusting off and reinstalling Spin It Again, I realized (as others have noted in the forum) that album/track lookups returned no results. Being a software developer, I decided to look into the problem and see if I could do anything about it. It turns out that I could... and I did.
The root of the problem is that musicbrainz.org changed their database lookup api to a new version (v2) then deprecated and finally disabled their original api (v1). Spin It Again only knows how to make lookup requests to the old version 1 endpoint using the old protocol, and only knows how to consume responses compatible with the version 1 format.
The solution strategy... find a way to convert the v1 requests to v2 format, submit the v2 request to musicbrainz, receive the v2 response and convert it to a compatible v1 response, send the response back to Spin It Again for processing as usual. All of this is easy enough to figure out and do with a proxy web service. The challenge was 'how to get Spin It Again to ask the proxy for album info instead of musicbrainz directly. Some quick digging with a hex editor discovered the musicbrainz.org url hard coded in the acuutils.dll file. I then edited the file to replace the musicbrainz.org domain with the domain of my proxy script siamb.jhbsa.com and voila! Spin It Again can ask the proxy using v1 commands, and the proxy asks musicbrainz using v2 commands, and then transforms the results before sending them back to Spin It Again.
I'm currently using this solution with great success. I've occasionally discovered quirks in the response conversions and I've been tweaking the proxy to accommodate them. I plan to leave the proxy operational for the community to use. Feel free to use (but not abuse) the service.
Blessings to all. Be safe.