I was wrong about the dict()
Here is the updated solution that converts it into dict.
response = '''BEST SHOW EVER http://www.myradio.foo/xml/logos/showlogo.jpg Avicii Hey Brother'''
## parsing using named group
m = re.match("(?P<showtitle>.*?)\s+(?P<image>https?://\S+)\s+(?P<song>.+)", response);
mystring = m.groupdict()
print mystring['song']
You can not always convert the song name on your format always. Cause you don't know which one is song name, or which one album name. If its always fixed that the first word is the album name, then you can do this one:
print re.sub("^(\S+)\s", "\\1 - ", mystring['song'])