Используйте Spotify API, чтобы получить интересные данные о ваших любимых треках и альбомах для работы!

Spotify предоставляет своим пользователям очень удобный API для начинающих. Давайте сначала начнем с определения API.

IBM дает очень простое объяснение: Интерфейс прикладного программирования, или API, позволяет компаниям открывать данные и функции своих приложений для внешних сторонних разработчиков, деловых партнеров и внутренних отделов своих компаний.. Думайте о Spotify как об огромной базе данных песен, которую мы используем для потоковой передачи музыки на свой вкус. Теперь Spotify хочет предоставить эти данные специально для программистов, чтобы они могли использовать их в своих проектах, придумывать творческие приложения, передавать их в модели машинного обучения и т. д. Все это можно сделать с помощью интерфейса прикладного программирования. Кроме того, это также помогло создать процветающее сообщество разработчиков для Spotify в процессе :)

С чего начать?

Во-первых, давайте познакомимся с API Spotify — как он работает, какие данные вы можете получить и в каком формате, а также с другими вещами, прежде чем приступить к реальному проекту. Для этого посетите сайт Spotify для разработчиков и нажмите на опцию DOCS в заголовке. Вы увидите различные значки, которые являются ссылками на соответствующие руководства. Нажмите на значок WEB API.

В этом новом окне вы увидите объяснение Spotify для своего WEB API — различные HTTP-запросы, которые вы можете отправлять, его формат ответа, различные конечные точки, разбиение на страницы запрошенного вами набора данных и т. д. Быстро прочитайте эту страницу, она облегчит вам понимание в дальнейшем :)

Если вы считаете, что теперь немного понимаете, как работает API Spotify, давайте рассмотрим различные примеры, исследующие различные конечные точки API. И хорошо для нас, Spotify предоставляет нам простой способ сделать это без необходимости писать ни единой строки кода! Для этого нажмите на вкладку ССЫЛКА, которую вы видите на дополнительной панели навигации. Откроется новая страница под названием «Spotify Web API» со связанными конечными точками, распределенными по разным категориям, перечисленным в левой части вашего веб-сайта.

Нажав на конечную точку по вашему выбору, вы увидите пример запроса и ответа, которые будут сгенерированы с использованием этой конечной точки. Как видите, ответ генерируется в формате JSON, как упоминалось ранее на странице WEB API. на странице также объясняются различные запросы и параметры, используемые как в запросе, так и в ответе.

Примечание. Если вы хотите узнать больше, выберите вариант КОНСОЛЬ в верхнем баннере, кроме ДОКУМЕНТОВ, которые мы рассмотрели ранее. Эта опция позволит вам отправить запрос с идентификатором и параметрами по вашему выбору и получить ответ обратно, опять же - без необходимости писать какой-либо код!

Спотипи

Spotipy – это облегченная библиотека Python для веб-API Spotify. С помощью Spotipy вы получаете полный доступ ко всем музыкальным данным, предоставляемым Spotify. В этом проекте мы будем использовать Spotipy для отправки запросов с использованием другой конечной точки. Важно, чтобы вы прочитали эту документацию Spotipy, чтобы у вас не возникло проблем с созданием собственного проекта API Spotify.

Создать приложение

Теперь, когда вы уже начали исследовать воды Spotify API, давайте начнем с проекта. Перейдите к опции «Панель инструментов» в верхнем баннере и войдите в свою учетную запись Spotify. После входа в систему нажмите «Создать приложение» и дайте ему имя и описание по вашему выбору. На этом шаге вы получите Идентификатор клиента и Секрет клиента, которые вам понадобятся для отправки запроса к API Spotify. Не забудьте хранить его в безопасном месте, потому что в случае утечки кто-то может использовать его для отправки запросов от имени вашего приложения. В этом примере мы будем использовать метод Http GET. Чтобы использовать метод POST, вам нужно использовать OAuth, о котором вы можете узнать в самой документации Spotify.

Давайте начнем

Я надеюсь, что мы рассмотрели все основы, необходимые для использования API Spotify. Итак, давайте начнем нашу работу с установки Spotify.

pip install spotipy

Теперь у вас есть идентификатор клиента и секрет клиента. Вы можете использовать их либо непосредственно в своем коде, либо установить их как переменные среды с помощью библиотеки os, либо сохранить их в модуле python, который впоследствии можно будет импортировать в свой код.

Отправка запроса

Давайте сделаем запрос к конечной точке «Получить элементы плейлиста», используя playlist_items() Spotipy.

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
sp = spotipy.Spotify(client_credentials_manager = SpotifyClientCredentials( client_id = 'your client id', client_secret = 'your client secret') )
playlist = sp.playlist_items('add playlist url of your choice')

Теперь, если вы распечатаете плейлист, вы увидите ответ в формате JSON, точно так же, как мы видели ранее на веб-сайте Spotify. Теперь наблюдайте за данными. Ищите то, что вы считаете интересным и хотите включить в свой набор данных/проект. Затем вы напишете код для извлечения этих очень конкретных данных, которые вам нужны. Ниже приведен код для получения определенных данных из ответа playlist_items.

index=[]
track_name = []
album = []
track_artist = []
track_url = []
popularity = []
explicit = []

for idx, item in ennumerate(playlist['items'],1):
    #index
    index.append(idx)
  
    #track name
    track_name.append(item['track']['name']) 
    #album
    album.append(item['track']['album']['name'])
    #track artist
    track_artist.append(item['track']['artists'][0]['name'])
   
    #track popularity
    popularity.append(item['track']['popularity'])
    
    #track explicity
    explicit.append(item['track']['explicit'])
    
    #track url
    track_url.append(item['track']['external_urls']['spotify'])

Сейчас мы собрали данные в разных списках. Теперь давайте воспользуемся Dataframe от pandas для лучшей визуализации собранных нами данных.

import pandas as pd
 playlist = pd.DataFrame( {’Track’:track_name, ’Track Artists’:track_artist,  'Track Popularity’:popularity, 'Explicit’:explicit, 'Album’:album, 'Track url’:track_url} )
#Set index
df1.index = index

Теперь для любого плейлиста наш набор данных должен выглядеть примерно так

Это оно! Были сделаны! Разве это не было сложно, верно? Я надеюсь на это :) Теперь вы можете делать много интересных вещей с помощью этого API. Воображение — ваш предел…

Больше контента на blog.devgenius.io.