At work, we're somewhat limited in what we can install on the office PCs. Therefore I listen to music on an iPod, rather than streaming.
To control the music on the iPod, I have a USB sniffer that picks up the media keys on my keyboard, and sends serial packets to the iPod.
I should rewrite taradov's code using RTOS threads to allow capture and sending at the same time, but what have now works well enough for my use case. If I press a key during the parse phase then it doesn't pick up, but I can always just press it again and usually it gets through.
For newer devices I've got an Arduino that take iPod remote commands and converts them to a TRRS headphone jack remote. So I could use the media keys on the keyboard to control a phone, for example.
Soon I plan to use Arduino Audio Tools to build an iPod remote -> Bluetooth A2DP remote using an ESP32 (note that -C and -S don't support A2DP, just ESP32).
Every time I change the volume or track on my iPod during a work day, I'm using this USB Sniffer, and it's been very reliable.