code: def get_analysis(self):
          
          if self.analysis_url:
              try:
                  # Try the existing analysis_url first. This expires shortly
                  # after creation.
                  try:
                      json_string = urllib2.urlopen(self.analysis_url).read()
                  except urllib2.HTTPError:
                      # Probably the analysis_url link has expired. Refresh it.
                      param_dict = dict(id = self.id)
                      new_track = _profile(param_dict, DEFAULT_ASYNC_TIMEOUT)
                      if new_track and new_track.analysis_url:
                          self.analysis_url = new_track.analysis_url
                          json_string = urllib2.urlopen(self.analysis_url).read()
                      else:
                          raise Exception("Failed to create track analysis.")
  
                  analysis = json.loads(json_string)
                  analysis_track = analysis.pop('track', {})
                  self.__dict__.update(analysis)
                  self.__dict__.update(analysis_track)
              except Exception: #pylint: disable=W0702
                  # No detailed analysis found.
                  raise Exception("Failed to create track analysis.")
          else:
              raise Exception("Failed to create track analysis.")
docs: Retrieve the detailed analysis for the track, if available. 
              Raises Exception if unable to create the detailed analysis.