
Spotify має безкоштовний API — пошук треків, отримання аудіоособливостей та створення плейлістів програмно
https://ift.tt/8pfSzZT
Spotify має понад 100 мільйонів треків. І їх API безкоштовний, добре документований і надзвичайно потужний.
Ви можете шукати треки, аналізувати аудіоособливості (танцювальність, енергія, темп), отримувати дані про виконавців і навіть створювати плейлісти — все програмно.
Ось як це зробити.
Крок 1: Отримайте свої облікові дані API (2 хвилини)
- Перейдіть на developer.spotify.com/dashboard
- Створіть застосунок (будь-яку назву)
- Скопіюйте ваш Client ID та Client Secret
Крок 2: Отримайте токен доступу
import requests
import base64
CLIENT_ID = 'your_client_id'
CLIENT_SECRET = 'your_client_secret'
# Отримати токен
auth_string = base64.b64encode(f'{CLIENT_ID}:{CLIENT_SECRET}'.encode()).decode()
response = requests.post('https://accounts.spotify.com/api/token',
headers={'Authorization': f'Basic {auth_string}'},
data={'grant_type': 'client_credentials'}
)
token = response.json()['access_token']
headers = {'Authorization': f'Bearer ?{token}'}
Цей токен діє 1 годину. Для пошуку та публічних даних входу користувача не потрібно.
Пошук треків
def search_tracks(query, limit=5):
response = requests.get('https://api.spotify.com/v1/search',
headers=headers,
params={'q': query, 'type': 'track', 'limit': limit}
)
tracks = response.json()['tracks']['items']
return [{
'name': t['name'],
'artist': t['artists'][0]['name'],
'album': t['album']['name'],
'popularity': t['popularity'],
'preview_url': t['preview_url'],
'spotify_url': t['external_urls']['spotify']
} for t in tracks]
results = search_tracks('lofi hip hop')
for track in results:
print(f"{track['name']} — {track['artist']} (popularity: {track['popularity']})")
Отримати аудіоособливості (класна частина)
Spotify аналізує кожен трек і надає такі властивості, як:
def get_audio_features(track_id):
response = requests.get(
f'https://api.spotify.com/v1/audio-features/{track_id}',
headers=headers
)
features = response.json()
return {
'danceability': features['danceability'], # 0.0 до 1.0
'energy': features['energy'], # 0.0 до 1.0
'tempo': features['tempo'], # BPM
'valence': features['valence'], # 0.0 (сумний) до 1.0 (щасливий)
'acousticness': features['acousticness'], # 0.0 до 1.0
'instrumentalness': features['instrumentalness']
}
Реальний приклад використання: я створив генератор плейлістів за настроєм. Користувач обирає «енергетичний» або «розслаблений», і застосунок фільтрує треки за оцінками енергії та валентності.
Отримати топ-треки артиста
def get_artist_top_tracks(artist_id, market='US'):
response = requests.get(
f'https://api.spotify.com/v1/artists/{artist_id}/top-tracks',
headers=headers,
params={'market': market}
)
return [{
'name': t['name'],
'popularity': t['popularity']
} for t in response.json()['tracks'][:5]]
Отримати рекомендації
def get_recommendations(seed_tracks, limit=10):
response = requests.get('https://api.spotify.com/v1/recommendations',
headers=headers,
params={
'seed_tracks': ','.join(seed_tracks[:5]),
'limit': limit,
'target_energy': 0.8,
'target_danceability': 0.7
}
)
return [{
'name': t['name'],
'artist': t['artists'][0]['name']
} for t in response.json()['tracks']]
Можна встановлювати цілі для будь-якої аудіоособливості — знаходити треки з конкретним BPM, енергією або настроєм.
Що ви можете створити
- Генератор плейлістів за настроєм — фільтрація за валентністю та енергією
- Інструмент відкриття музики — знаходити схожі треки за допомогою API рекомендацій
- Допомога діджея — знаходити треки з певним BPM для плавних переходів
- Аналітична панель — візуалізація ваших звичок прослуховування
- Конструктор плейлістів для тренувань — тільки треки з високою енергією та високим BPM
Обмеження API
- Безкоштовний тариф: без жорсткого ліміту, але Spotify може обмежувати приблизно до 100 запитів за 30 секунд
- Потік облікових даних клієнта: доступ до всіх відкритих даних (без даних користувача)
- Потік аутентифікації користувача: доступ до приватних плейлістів, історії прослуховування, збережених треків
Що б ви побудували з API Spotify?
Я завжди шукаю креативні ідеї для проектів. Чи ви щось будували з музичних даних? А може є функція Spotify, якої вам не вистачає? Напишіть у коментарях.
Я пишу про безкоштовні API, автоматизацію на Python та інструменти для розробників. Підписуйтеся для щотижневих відкриттів.
Більше API: 8 безкоштовних API, які дійсно корисні | ARXIV API Guide
HI-FI News
через DEV Community: javascript https://ift.tt/9aq0gIZ
26 березня 2026 р. о 12:05 ранку
March 26, 2026 at 12:05AM

Залишити відповідь
Щоб відправити коментар вам необхідно авторизуватись.