Parsing HTML, XML into a hash map of products
On top of my head, you could convert
(string/trim (html/text (first (html/select ... to a function as it's
used twice already.

In product-hash the function extract-artist-album is called twice,
so the return value should've been reused instead.

A minor style thing is the nth, personally I'd rather use first,
second, ..., unless the indexes get larger, but YMMV.

Also, the last two forms should be in a separate function so the file
can be loaded without them being executed.