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

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

В этой статье я хотел бы показать свои лучшие треки на Spotify за последние 6 месяцев. Я также спросил своего парня, могу ли я использовать его учетную запись Spotify и посмотреть, одинаковы ли мы у нас в музыке или нет.

Подготовка

Есть несколько способов, которые вы можете использовать для доступа к своим данным в Spotify, например: список воспроизведения, сохраненные треки или шоу, недавно воспроизведенные треки и многое другое. Вы можете использовать любую библиотеку из Spotify Web-API. Документация для разработчиков очень полезна и легко читается, если вы новичок в документации. Я также рекомендую вам сначала попробовать консоль разработчика, она поможет вам узнать, какую функцию использовать, чтобы получить конкретный элемент, и она интерактивна, так что вы можете попробовать ее сами.

Я использовал консоль разработчика, чтобы получить токен Oauth и метод запроса get-post в python. Лучшие треки основаны на поведении пользователя, включая историю воспроизведения, но возвращает максимум 50 треков.

Лучшие треки представлены в 3-х временном диапазоне:

  • long_term: данные за несколько лет
  • medium_term: за последние 6 месяцев
  • short_term: за последние 4 недели

В данном случае я использовал medium_term, потому что он может представлять наши настроения на основе того, что мы любим слушать во время нынешнего мирового кризиса.

import requests
endpoint = "https://api.spotify.com/v1/me/top/tracks?time_range=medium_term&limit=50"
token = "Bearer YOUR-TOKEN"
response = requests.get(endpoint,headers={"Content-Type":"application/json","Authorization":token})

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

Итак, как выглядят топовые треки

Оказывается, мы получаем один и тот же трек из пяти лучших треков, и это новая песня из Kodaline - Saving Grace.

Чтобы узнать, кто из нас слушает популярные треки больше, я использую функцию популярности (диапазон 1–100) и задаю ей порог около 50. Если трек получил рейтинг популярности выше 50, это означает, что трек популярен. На рисунке ниже показано, что треки моего парня более популярны, чем мои.

Тогда как похожи наши треки

На рисунке ниже показано, как соотносятся каждая пара звуковых функций.

Давайте посмотрим внимательно:

энергия и валентность

Функция энергии показывает, насколько быстро, громко и шумно звучит трек. Например, у дэт-метала высокая энергия, а у колыбельной - низкая.

С другой стороны, характеристика валентности описывает, насколько эмоциональный трек. Треки с высокой валентностью звучат более позитивно (например, счастливые, веселые, эйфорические), а треки с низкой валентностью - более негативные (например, грустные, подавленные, злые).

На рисунке видно, что мои треки, скорее всего, медленные и грустные по сравнению с песнями моего парня.

акустичность и речь

Акустичность измеряется от 0,0 до 1,0 того, является ли дорожка акустической. Чем выше оценка акустичности, тем выше вероятность того, что дорожка является акустической.

Речь определяет, есть ли в дорожке произнесенные слова. Значения выше 0,66 описывают дорожки, которые, вероятно, полностью состоят из произнесенных слов (например, аудиокнига или шоу). Значения от 0,33 до 0,66 описывают дорожки, которые могут содержать как музыку, так и речь. Значения ниже 0,33, скорее всего, представляют музыку и другие треки, не похожие на речь.

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

танцевальность и темп

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

Общий оценочный темп трека в ударах в минуту (BPM). В музыкальной терминологии темп - это скорость или темп данной пьесы, производный непосредственно от средней продолжительности удара.

Судя по этим двум оценкам, у нас обоих почти одинаковые вкусы к звучанию наших любимых треков.

корреляция с каждой особенностью

Каждый квадрат на фотографиях выше показывает взаимосвязь между каждой особенностью моих треков и треков моего парня. Если значение ближе к 0 или 0, это означает, что между двумя функциями нет линейного тренда. Если значение, близкое к -1 или -1, означает, что существует отрицательная корреляция между двумя функциями (более высокая оценка для 1 функции, более низкая оценка для другой функции). С другой стороны, если значение ближе к +1 или +1, это означает, что существует положительная корреляция между двумя функциями (более высокая оценка для одной функции, более высокая оценка для другой функции).

Оба наших трека имеют сильную положительную корреляцию между характеристиками громкости и энергии и отрицательную корреляцию между характеристиками акустичности и энергии и характеристиками акустики и громкости.

Есть ли какие-нибудь из моих треков, которые похожи на трек моего парня?

Используя звуковые функции, я думаю, что, возможно, есть некоторые из моих треков, которые тоже звучат как треки моего парня. Итак, я решил вычислить подобие каждого из наших треков, используя метод косинусного сходства. На приведенном ниже рисунке показаны 15 треков, которые действительно звучат одинаково, а также видно, что у нас обоих есть 3 одинаковые песни в наших лучших треках за последние 6 месяцев. EDA (предварительный анализ данных) для этой статьи можно найти здесь.

Дополнительно :)

Возможно, это не так интересно, как то, что я вам показываю выше, но при написании этой статьи я обнаружил кое-что забавное. В лучших треках моего парня я узнал, что у него Ripped Pants by Spongebob Squarepants в качестве его трека №16. ржу не могу. Тогда я сразу спросил его, и он сказал:

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