I thought I found a way to do this, but it seems like this is for exoplayer1 (the first answer to this question): Extracting metadata from Icecast stream using Exoplayer
I already have a way to read Icy metadata, but it uses a stream of it's own, so it creates extra data costs for the user.
How can this be done just using one instance of the stream?