However, from my quick glance I haven't been able to understand how he infers USD amounts from blockchain transactions.
I think the basic assumption is that people tend to send transactions of $1 $10 $20 $50 $100 $500 $1k $2k or $10k, so the USD amount stays the same but depending on current valuation people need to send different amounts of BTC to transfer the equivalent of $100 or $10k etc.. If you can determine which transactions are like $500 worth probably, you can deduce the price.
Still kinda magic to me - but really cool

That makes sense, but it can only work over 1 order or magnitude, unless you have an external oracle. In other words, what looks like $10 could be $1 or $100 depending on the actual dollar price that was paid for that transaction - which we don't know, since it is exactly what we're trying to estimate.