Что, если бы мы могли анализировать треки, которые слушаем, помимо потоковой передачи музыки из подавляющего большинства библиотек Spotify? В этом мини-руководстве мы рассмотрим, как это сделать через Python с помощью интерфейса прикладного программирования (API).

Подобно тому, как люди могут общаться друг с другом, отправляя заметки и запросы, компьютер может делать это через API. Это помогает компьютеру связываться с другим компьютером и получать различную информацию с помощью вызовов и запросов.

В этом случае мы будем использовать веб-API (Spotipy) для получения и анализа треков из Spotify. Для начала нам нужно будет войти в систему и зарегистрировать учетную запись разработчика Spotify: https://developer.spotify.com/dashboard/

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

Ключевая информация, которая нам потребуется от API, обычно состоит из «клиентского» и «секретного» ключа. Это позволит вам аутентифицироваться и использовать API для выполнения вызовов и запросов различных типов данных через конечные точки.

Ключи можно найти на панели инструментов вашего приложения, щелкните, чтобы отобразить секретный ключ клиента. Убедитесь, что ключи API не передаются случайным образом, так как это может привести к злоупотреблению вызовами и в конечном итоге может быть забанен.

Итак, мы готовы начать!

Если вы еще не установили Spotipy, вы можете установить его через pip в приглашении anaconda.

pip install spotipy

Мы будем импортировать следующие библиотеки, чтобы помочь нам в форматировании и анализе данных.

Вместо того, чтобы устанавливать клиент и секретный ключ для каждого вызова с помощью функции SpotifyClientCredientals (), мы можем назначить их переменной, например auth_manager, для нашего примера.

В нашем первом примере давайте соберем информацию об исполнителе с помощью функции artist () для отдельного исполнителя с указанием его идентификатора, URI или URL. Чтобы получить URL-адрес Spotify желаемых исполнителей, щелкните правой кнопкой мыши имя исполнителя в настольном приложении Spotify и выберите ›Копировать URI Spotify.

И вывод:

Мы также можем собрать все альбомы определенного исполнителя с помощью функции artist_albums ().

С помощью функции artist_top_tracks () мы даже можем собрать лучшие треки, превью музыки и обложки альбомов для исполнителя по странам. Например, 5 лучших треков для исполнителя из США (США). Чтобы получить полный список доступных кодов стран, мы можем использовать функцию country_codes ().

И на выходе

В зависимости от того, что вы планируете извлечь, существует масса других функций с использованием Spotipy, которые вы можете продолжить читать на https://spotipy.readthedocs.io/en/2.16.1/

Давайте перейдем к основной теме этой статьи - аудиоанализу треков Spotify!

Это можно сделать с помощью функции audio_features ().

По функции мы видим, что треки, как правило, имеют такие особенности, как «танцевальность», «энергия», «живость» и т. Д. Однако, похоже, отсутствует такая информация, как название песни, исполнитель и альбом. Мы можем собрать их и объединить все в аккуратный маленький фрейм данных с помощью панд и функции track ().

Вывод в одном столбце, который нам пришлось бы транспонировать в одну строку перед присвоением столбцам соответствующих значений.

Результат после транспонирования и преобразования во фрейм данных:

Помимо одного трека, мы также можем собрать аналогичные данные для плейлиста с помощью определенных переменных и циклов. Давайте начнем с получения идентификаторов треков для рождественского плейлиста, раз уж он не за горами.

Сначала мы определяем функцию для получения идентификаторов треков, которые помогут нам получить такую ​​информацию, как имя, альбом, исполнитель и т. Д.

Из списка воспроизведения мы видим, что наш список содержит 100 песен и 100 идентификаторов треков соответственно.

Затем мы должны определить другую функцию, которая позволит нам получить характеристики треков в нашем списке воспроизведения, с помощью оператора return, чтобы завершить выполнение вызова функции.

После чего мы использовали бы цикл for и добавляли функции трека для каждого трека в список, прежде чем объединять его с информацией о треке.

Добавлена ​​задержка с помощью функции time.sleep (), которая приостанавливает выполнение текущего потока на заданное количество секунд. Это сделано для предотвращения отправки слишком большого количества запросов в течение определенного периода времени.

Результатом является фрейм данных, который позволяет выполнять простую визуализацию / экспорт данных и т. Д.

Мы даже можем определить 5 песен с наименьшей популярностью, которые оцениваются по шкале от 0 до 100, где 0 - наименее популярная песня, и наоборот. В соответствии со ссылкой на конечную точку значения рассчитываются алгоритмом и в основном основаны на общем количестве воспроизведений дорожки и их недавнем времени.

А вот песни, пользующиеся наибольшей популярностью в этом плейлисте.

Наконец, мы можем выполнить некоторую базовую визуализацию данных, используя данные из фрейма данных. Для этого мы воспользуемся библиотекой plotly express.

Проверка типов данных в различных столбцах перед построением простой диаграммы рассеяния.

Точечная диаграмма

Круговая диаграмма

Визуализация песен с рейтингом популярности 90 или более в этом плейлисте по исполнителям.

Гистограмма

Это все для этого руководства, и я надеюсь, что вы повеселились и узнали что-то новое, изучая получение и анализ данных с помощью таких API, как Spotipy.

Любопытный ученик? Раскройте весь потенциал своего обучения на среде и поддержите таких писателей, как я, менее чем за чашку кофе.



Новичок в программировании на R и не знаете, с чего начать? посмотрите мою электронную книгу с пошаговыми инструкциями!