Open tahpot opened 2 weeks ago
Spotify supports SSO, including OAuth 2.0 authentication. It exposes a wide range of generic data APIs, but we will focus on user-specific APIs. Ref: Spotify Web API Documentation
Track
represents Spotify items like music, episode, podcast, audiobook etc
{
"items": [
{
"name": "Track Name",
"id": "track_id",
"album": {
"name": "Album Name",
"images": [{ "url": "album-image-url.com" }]
},
"artists": [
{
"name": "Artist Name",
"id": "artist_id"
}
],
"popularity": 80,
"duration_ms": 210000,
"explicit": false
}
],
"type": "track"
}
{
"items": [
{
"id": "playlist_id",
"name": "Playlist Name",
"description": "A cool playlist",
"owner": {
"display_name": "Owner Name",
"id": "owner_id"
},
"tracks": {
"total": 25
},
"images": [
{
"url": "playlist-image-url.com"
}
],
"public": true,
"snapshot_id": "snapshot_id_string"
}
]
}
{
"items": [
{
"track": {
"name": "Recently Played Track Name",
"id": "track_id",
"artists": [
{
"name": "Artist Name",
"id": "artist_id"
}
],
"album": {
"name": "Album Name",
"images": [{ "url": "album-image-url.com" }]
}
},
"played_at": "2023-05-01T10:30:00.000Z"
}
]
}
{
"artists": {
"items": [
{
"external_urls": {
"spotify": "https://open.spotify.com/artist/{artist_id}"
},
"followers": {
"href": null,
"total": 1000000
},
"genres": [
"pop",
"rock"
],
"href": "https://api.spotify.com/v1/artists/{artist_id}",
"id": "{artist_id}",
"images": [
{
"height": 640,
"url": "https://i.scdn.co/image/{image_id}",
"width": 640
}
],
"name": "Artist Name",
"popularity": 80,
"type": "artist",
"uri": "spotify:artist:{artist_id}"
}
]
}
}
We can use the original following
schema.
Libraries:
We should extract the following information and place into our schemas
profile
playlist
history
(new schema) -- Recently played itemsfollowing
-- Followed artistsfavorite
-- User's top Artists and ItemsCan you please do the following as next steps:
history
in schemas-common
. This should be designed in such a way it can also be used for web browsing historyplaylist
in schemas-common
. This should be designed in such a way it can also be used for other playlists in the future (ie: youtube)profile
, playlist
, following
, favorite
.
Key information:
@chime3 What other data is available?