【问题标题】:Include playlist id in output when getting a list of user's playlist tracks in Spotify在 Spotify 中获取用户的播放列表曲目列表时在输出中包含播放列表 ID
【发布时间】:2017-03-16 20:14:51
【问题描述】:

我的目标是为我添加到播放列表中的所有歌曲创建一个 CSV,同时指明歌曲添加到哪个播放列表。

我有一个播放列表 ID 列表,当我通过 Python 发出请求时,我正在循环这些 ID https://api.spotify.com/v1/users/{user_id}/playlists/{playlist_id}/tracks。我感兴趣的领域是:

items(added_by.id, added_at,track(name,id,duration_ms,album(name,id), artists(name, id)))

我目前的输出如下(只显示一首曲目):

{
  "items" : [ {
    "added_at" : "2017-02-28T16:58:10Z",
    "added_by" : {
      "id" : "nelsonology"
    },
    "track" : {
      "album" : {
        "id" : "2UhSfdDHLBBbWK4ifose0x",
        "name" : "Love Slacker"
      },
      "artists" : [ {
        "id" : "5BhFZpE8kUGZJiKOsYjLQM",
        "name" : "Yeek"
      } ],
      "duration_ms" : 245577,
      "id" : "6z3fmpMqgV3a8DYZgdiU7w",
      "name" : "I'm Not Ready"
    }
  }
 }

所以我的问题是是否有办法(如果有,如何):

  1. 将播放列表 ID 添加到 JSON 输出中
  2. 将播放列表 ID 添加到 CSV 输出中

我不熟悉 API 或 Python,因此非常感谢任何有关这方面的指导!

【问题讨论】:

    标签: python spotify


    【解决方案1】:

    为了调用/v1/users/{user_id}/playlists/{playlist_id}/tracks,您已经有了播放列表ID。为了将该播放列表转换为 csv,您可以编写如下内容:

    import sys
    import spotipy
    import spotipy.util as util
    
    scope = 'user-library-read'
    # Define the playlist id out here so we can use it later
    userid = '11995522'
    playlistid = 'testplaylistid'
    
    if len(sys.argv) > 1:
        username = sys.argv[1]
    else:
        print "Usage: %s username" % (sys.argv[0],)
        sys.exit()
    
    token = util.prompt_for_user_token(username, scope)
    
    if token:
        sp = spotipy.Spotify(auth=token)
        results = sp.user_playlist_tracks(userid, playlistid, 'items(added_by.id, added_at,track(name,id,duration_ms,album(name,id), artists(name, id)))')
        for item in results['items']:
            track = item['track']
            print ','.join([
                # This inserts the playlist ID into your CSV output
                playlistid,
                item['added_by']['id'],
                item['added_at'],
                item['track']['name'],
                item['track']['id'],
                item['track']['duration_ms'],
                item['track']['album']['name'],
                item['track']['album']['id'],
                item['track']['artists'][0]['name'],
                item['track']['artists'][0]['id'],
              ])
    else:
        print "Can't get token for", username
    

    此示例使用spotipy python Spotify API Wrapper 库。相关文档可在线获取。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2016-12-26
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2013-08-07
      相关资源
      最近更新 更多