You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否通过通用Python脚本调用API访问Apple Music库并创建播放列表?

在Python中创建Apple Music个人库播放列表的可行方案

可以实现需求,核心是手动完成Apple Music API的OAuth2授权流程获取Music User Token,再直接调用官方API操作个人库资源,具体步骤如下:

1. 准备Apple Developer账号与配置

  • 注册并登录Apple Developer账号,创建新的App ID,开启「Music Services」权限
  • 在「Certificates, Identifiers & Profiles」中为该App ID配置「Sign In with Apple」和「Apple Music API」权限
  • 创建「Services ID」,设置授权回调URL(本地开发可使用http://localhost:8080/callback
  • 生成客户端密钥(.p8格式文件),用于后续令牌交换操作

2. 实现OAuth2授权流程获取Music User Token

Apple Music API采用OAuth2授权码流程,需手动完成用户授权:

  • 构造授权URL,指定response_type=codeclient_idredirect_uri,以及权限scope=library-read-write(读写个人库所需)
  • 用浏览器打开该URL,登录你的Apple Music账号并完成授权,回调后会得到授权码
  • 携带授权码、客户端ID、客户端密钥,向https://appleid.apple.com/auth/token发送POST请求,交换得到**访问令牌(即Music User Token)**和刷新令牌
  • 访问令牌有效期约1小时,到期后用刷新令牌重新获取新的访问令牌即可继续操作

3. 调用API创建并填充个人库播放列表

拿到有效令牌后,直接发送HTTP请求调用官方API:

  • 创建播放列表:发送POST请求到https://api.music.apple.com/v1/me/library/playlists
    • 请求头:Authorization: Bearer {你的Music User Token}Content-Type: application/json
    • 请求体示例:
      {
        "attributes": {
          "name": "迁移自Amazon的播放列表"
        }
      }
      
  • 解析本地文本文件的歌曲列表,通过搜索API匹配Apple Music资源:发送GET请求到https://api.music.apple.com/v1/catalog/{地区码}/search,携带参数term=歌曲名 歌手名types=songs
  • 将匹配到的歌曲添加到新建播放列表:发送POST请求到https://api.music.apple.com/v1/me/library/playlists/{播放列表ID}/tracks,请求体包含歌曲ID数组

4. 注意事项

  • 搜索时需指定与你Apple Music账户对应的地区码(如cnus),确保结果准确
  • 对搜索不到的歌曲,建议记录到日志文件中后续手动补充
  • 务必做好令牌刷新逻辑,避免每次运行都需要重新授权

虽然apple-music-python库不支持库资源操作,但官方Apple Music API本身完全支持个人库的播放列表创建与修改,只需手动封装HTTP请求即可实现需求。

内容的提问来源于stack exchange,提问作者kaltorak

火山引擎 最新活动