code: def get_item(track_url, client_id=CLIENT_ID):
      
      try:
          item_url = url['resolve'].format(track_url)
  
          r = requests.get(item_url, params={'client_id': client_id})
          logger.debug(r.url)
          if r.status_code == 403:
              return get_item(track_url, ALT_CLIENT_ID)
  
          item = r.json()
          no_tracks = item['kind'] == 'playlist' and not item['tracks']
          if no_tracks and client_id != ALT_CLIENT_ID:
              return get_item(track_url, ALT_CLIENT_ID)
      except Exception:
          if client_id == ALT_CLIENT_ID:
              logger.error('Failed to get item...')
              return
          logger.error('Error resolving url, retrying...')
          time.sleep(5)
          try:
              return get_item(track_url, ALT_CLIENT_ID)
          except Exception as e:
              logger.error('Could not resolve url {0}'.format(track_url))
              logger.exception(e)
              sys.exit(0)
      return item
docs: Fetches metadata for a track or playlist