Spotify Web API logo

Spotify Web API

Spotify Web API

正常免费mediaSpotify

Spotify Web API 让应用搜索曲目、管理播放列表、控制播放,是音乐类集成与个性化推荐的基础。

访问站点 ↗健康巡检 9 小时前
适合什么时候用

公开搜索 / 元数据用 Client Credentials 即可,无需用户授权

先注意什么

播放控制类 API 仅 Premium 用户能用

第一步先查

到 developer.spotify.com 注册一个 app,取 Client ID 和 Client Secret。公开数据用 Client Credentials Flow 拿 token;操作用户数据走 Authorization Code Flow。所有请求 Authorization: Bearer <token>。

认证
oauth
CORS
不支持
HTTPS
注册
需要
延迟
1006 ms
协议
REST
计费
freemium

可用率 · 30 天窗口

巡检: 1可用率: 100%平均延迟: 1006ms
01

关于这个 API

Spotify Web API 把 Spotify 的目录、用户播放与音频特征数据通过 REST 暴露出来。一个特别有价值的能力是 audio features 端点:每首曲目都有 tempo、energy、valence、danceability、acousticness 等 0-1 分值,是开发音乐推荐算法的天然特征工程素材。

认证有两种 OAuth flow。Client Credentials Flow 适合查公开数据(搜索、元数据),实现最简单。Authorization Code Flow 需用户授权,能访问用户的播放列表、最近播放、播放控制等。Web Playback SDK 让浏览器直接播放 Spotify 音频,但要求用户是 Premium 会员且签了 Spotify 服务协议。

速率限制采用滑动窗口策略,超出后 429 + Retry-After。设计批量操作(如同步大量曲目数据)时需引入 backoff。某些数据(歌词、详细听众画像)不在公开 API 里——歌词通过 Musixmatch 等第三方授权获取。

02

你可以做什么

  • 1为应用搭建"分享当前正在听"的功能
  • 2基于用户听歌历史做个性化推荐
  • 3管理与同步用户的播放列表
  • 4查询专辑、艺术家与歌单的元数据
  • 5为播客类应用接入 Spotify 节目数据
03

优劣对比

优点

  • 公开搜索 / 元数据用 Client Credentials 即可,无需用户授权
  • 音频特征(tempo, energy, valence)数据丰富,适合做推荐
  • 官方 Web Playback SDK 可在浏览器播放(需 Premium)

注意事项

  • 播放控制类 API 仅 Premium 用户能用
  • 速率有滑动窗口限制,被限时会 429
  • 部分元数据(如歌词)仅通过授权第三方提供,Web API 没有
04

示例请求

通用模板 — 实际 endpoint 请查阅文档替换 <endpoint>。
curl https://spotify.com/<endpoint> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
05

快速开始

到 developer.spotify.com 注册一个 app,取 Client ID 和 Client Secret。公开数据用 Client Credentials Flow 拿 token;操作用户数据走 Authorization Code Flow。所有请求 Authorization: Bearer <token>。

06

常见问题

调用 API 收费吗?+

免费,但播放控制类端点要求 Premium 用户。

Client Credentials 和 Authorization Code 区别?+

Client Credentials 仅访问公开数据,最简单;Authorization Code 需用户授权,能访问其个人播放历史与列表。

能直接在浏览器播放音频吗?+

通过 Web Playback SDK 可以,但需要用户是 Spotify Premium 且接受相应协议。

能拿到歌词吗?+

Web API 不提供歌词,第三方授权服务(如 Musixmatch)提供。

07

技术细节

CORS: NoHTTPS: Yes注册: Yes开源: No
认证方式
oauth
计费
freemium
协议
REST
SDK
javascript, python, java, ruby
响应时间
1006 ms
上次巡检
2026/5/12 07:38:28
08

接口端点

从 OpenAPI spec 自动解析。显示 12 / 88 个未弃用端点。

GET
/albumsAlbums

Get Several Albums

GET
/albums/{id}Albums

Get Album

GET
/albums/{id}/tracksAlbumsTracks

Get Album Tracks

GET
/artistsArtists

Get Several Artists

ids:query*
GET
/artists/{id}Artists

Get Artist

GET
/artists/{id}/albumsArtistsAlbums

Get Artist's Albums

GET
/artists/{id}/related-artistsArtists

Get Artist's Related Artists

GET
/artists/{id}/top-tracksArtistsTracks

Get Artist's Top Tracks

GET
/audio-analysis/{id}Tracks

Get Track's Audio Analysis

id:path*
GET
/audio-featuresTracks

Get Tracks' Audio Features

ids:query*
GET
/audio-features/{id}Tracks

Get Track's Audio Features

id:path*
GET
/audiobooksAudiobooks

Get Several Audiobooks

另有 76 个端点未显示,详见 OpenAPI spec。

09

标签