2016-04-30 9 views
3

私はEchonestresponseをの一部とするsong durationにしたいと思っています。そうEchonest ::歌の長さ

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

、私は上記の例で使用する必要がありますkey/valuedurationを取得するには?

:使用されているラッパーがpyen

答えて

0

durationあるplaylist/static方法でsong/profileで見つかっ分析、およびではないので、我々はapiから2番目responseを必要としています。

これは、各曲duration(ならびに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'])