title: Receive ice cast meta data with python
body: <p>I tried to get the ice cast meta data of a mp3 stream with this script:</p>
  
  <pre><code>import requests
  
  url = 'http://stream.jam.fm/jamfm-nmr/mp3-128/konsole/'
  
  try:
      response = requests.get(url, headers={'Icy-MetaData': 1}, stream=True)
      response.raise_for_status()
  except requests.RequestException, e:
      print 'Error:', e
  else:
      headers, stream = response.headers, response.raw
      meta_int = headers.get('icy-metaint')
  
      if meta_int is not None:
          audio_length = int(meta_int)
  
          while True:
              try:
                  audio_data = stream.read(audio_length)
                  meta_byte = stream.read(1)
                  if (meta_byte):
                      meta_length = ord(meta_byte) * 16
                      meta_data = stream.read(meta_length)
                      print meta_data
              except KeyboardInterrupt:
                  break
  
      response.close()
  </code></pre>
  
  <p>This works but just for the first package. I will never receive an update on the title information when the track changes. My question is: Is this intended behavior and the track info is just send once or did I something wrong? I would like to be able to notice a track change without polling the stream from time to time.</p>