2016-04-30 3 views
3

Ich möchte meine Echonestresponse bekommen song duration, die Teil der audio_summary sein soll.Echonest :: Song Dauer

params = { 
     'type':'artist-radio', 
     'artist':artist, 
     'results': 3, 
     'bucket' : ['id:spotify-WW', 'tracks'], 
     'limit': True 
    } 
    response = en.get('playlist/static', **params) 
    songs = response['songs'] 

so, bekommt Lied duration, die key/value soll ich im obigen Beispiel verwenden?

HINWEIS: die Hülle verwendet wird, ist pyen

Antwort

0

duration eine Analyse in song/profile, und nicht in playlist/static Methode gefunden ist, so brauchen wir eine zweite response vom api.

Dies ist eine Möglichkeit, jedes Lied des Erhaltens duration (sowie den Druck und artist_namesong_title):

#get 'playlist response' 
    response_playlist = en.get('playlist/static', **params) 
    song_playlist = response_playlist['songs'] 

    if len(song_playlist) > 0: 

     for i, song in enumerate(song_playlist): 
      #we need to track each song id 
      song_id = song_playlist[i]['id'] #ok 
      #in order to get song 'duration', we need to access 'song/profile response' 
      #and pass the id as an argument to 'audio_summary' 
      response_profile = en.get('song/profile', id=song_id, bucket="audio_summary") 
      song_profile = response_profile['songs'] 
      dur = song_profile[0]['audio_summary']['duration']  
      print dur       
      #now we access each song 'foreign_id', which is playable by, say, Spotify 
      for track in song: 
       track = song['tracks'][i] 
       track_id = track['foreign_id'].replace('-WW', '')   
      print '{0} {2} {1}'.format(i, song['artist_name'], song['title'])