Spotify Web API允许开发者通过编程方式与Spotify服务交互,包括管理播放列表和添加歌曲。这是Spotify开放平台的一部分,使开发者能够构建与音乐流媒体服务集成的应用程序。
首先需要在Spotify开发者平台注册应用获取API凭证:
Spotify使用OAuth 2.0认证,需要获取访问令牌:
// 示例:获取访问令牌
const axios = require('axios');
const qs = require('querystring');
const client_id = 'YOUR_CLIENT_ID';
const client_secret = 'YOUR_CLIENT_SECRET';
async function getAccessToken() {
const authOptions = {
method: 'post',
url: 'https://accounts.spotify.com/api/token',
headers: {
'Authorization': 'Basic ' + Buffer.from(client_id + ':' + client_secret).toString('base64'),
'Content-Type': 'application/x-www-form-urlencoded'
},
data: qs.stringify({
grant_type: 'client_credentials'
})
};
try {
const response = await axios(authOptions);
return response.data.access_token;
} catch (error) {
console.error('Error getting access token:', error);
throw error;
}
}
async function addTracksToPlaylist(accessToken, playlistId, trackUris) {
const url = `https://api.spotify.com/v1/playlists/${playlistId}/tracks`;
const options = {
method: 'post',
url: url,
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
data: {
uris: trackUris,
position: 0
}
};
try {
const response = await axios(options);
return response.data;
} catch (error) {
console.error('Error adding tracks:', error.response ? error.response.data : error);
throw error;
}
}
// 使用示例
(async () => {
try {
const accessToken = await getAccessToken();
const playlistId = 'YOUR_PLAYLIST_ID';
const trackUris = [
'spotify:track:4iV5W9uYEdYUVa79Axb7Rh',
'spotify:track:1301WleyT98MSxVHPZCA6M'
];
const result = await addTracksToPlaylist(accessToken, playlistId, trackUris);
console.log('Tracks added successfully:', result);
} catch (error) {
console.error('Failed to add tracks:', error);
}
})();
没有搜到相关的文章