Как получить свою статистику из Яндекс.Музыки
На сервисе «Яндекс.Музыка» есть прекрасная страница «История». В ней хранится информация обо всём ранее прослушанном вами (до 2000 треков) на всех устройствах под вашим аккаунтом Я.Музыки.
Но для активного пользователя листать вручную, а уж тем более систематизировать данные в таком формате совсем неудобно. А до аналитики и статистики частенько чешется мозг. В результате была найдена статья на Хабре. Так появилась эта инструкция:
Получаем информацию от Яндекс.Музыки
- Устанавливаем на компьютер Python 3.7 (ссылка на официальном сайте).
- Настраиваем переменную окружения %PATH% (чтоб в будущем не набирать лишних управляющих слов в командной строке).
- Скачиваем с Гитхаба архив со скриптом — и распаковываем.
- Открываем распакованную папку в Проводнике. На любом свободном месте окна нажимаем правую кнопку мыши с зажатой клавишей Shift.
- В меню появится дополнительный пункт Открыть окно команд. Выбираем его, и в открывшейся командной строке пишем:
pip install -r requirements.txt
После завершения всех операций загрузки и установки запускаем скачивание данных с сервера командой
python downloader.py --login=login --password=password
где вместо =login вводим логин от аккаунта без домена и вместо =password вводим пароль.
В папке со скриптом должен появиться файл statistics.csv — это и есть наш архив треков!
Анализируем данные
Следующим шагом в той же командной строке запускаем строку
ipython notebook
Открывается окно в браузере, где необходимо выбрать statistics.ipynb.
Откроется новая вкладка, где необходимо нажать Kernel -> Restart & Run All
Готово! Наслаждаемся полученными данными. На текущий момент доступны:
- Самые прослушиваемые исполнители;
- Самые прослушиваемые треки исполнителя;
- Самые прослушиваемые песни;
- Самые прослушиваемые альбомы;
- Самые прослушиваемые треки исполнителя;
- Самые прослушиваемые треки альбома;
- Самые прослушиваемые жанры;
- Распределение треков по году выпуска;
- Время, за которое были прослушаны треки.
- Яндекс.Музыка
- Неофициальная информация
Как посмотреть историю прослушиваний в Яндекс Музыке
Яндекс.Музыка предлагает пользователям слушать миллионы самых разных треков от российских и иностранных исполнителей. Сервис стоит недорого, активно развивается и дополняется разными функциями. Он может автоматически подбирать для вас подходящие треки или генерировать радио из песен, которые могут вам понравиться. Слушая незнакомую музыку, можно случайно пропустить что-то интересное и не успеть добавить его в коллекцию. Поэтому в этой статье мы расскажем, как можно посмотреть историю прослушиваний в Яндекс Музыке на ПК и в мобильном приложении.
Где находится история прослушиваний в Яндекс.Музыке на ПК?
В любой момент прослушивания музыки через сервис на персональном компьютере или ноутбуке вы можете посмотреть историю, чтобы узнать название понравившегося трека или включить его снова. Для этого кликните по аватарке своего профиля в правом верхнем углу экрана и выберите пункт «Коллекция».
После этого откроется раздел, в котором вы найдёте понравившиеся вам треки, составленные плейлисты, сохранных исполнителей, альбомы, треки, подкасты и книги. Но кроме них здесь есть раздел «История». Кликните на его название.
Откроется список всех песен, которые вы слушали на Яндекс.Музыки в хронологическом порядке. То есть, сначала будут идти треки, которые вы слушали недавно, а потом более старые.
Яндекс.Музыка хранит в истории последние 2000 прослушанных песен.
Также есть другой способ получить доступ к истории воспроизведения. Он ещё проще, не требует переходить в коллекцию, и доступен из любого места на сайте.
Чтобы просмотреть коллекцию:
- Кликните на 3 полоски слева от названия трека и обложки альбома.
- Откроется заданная вами очередь воспроизведения. Обычно это альбом, который вы слушаете сейчас или подобранные алгоритмами Яндекса песни. Кликните на раздел «История».
- После этого вы увидите тот же список песен, которые вы включали последними.
Стоит отметить, что в обоих случаях для вас доступна функция очистки истории. Просто нажмите на соответствующую кнопку, и все записи будут полностью удалены. Но помните, что они используются для подбора подходящей музыки. Поэтому при очистке истории его эффективность будет существенно снижена, а Яндекс.Музыка может начать предлагать песни, которые вам не понравятся.
Где находится история прослушивания в Яндекс.Музыки в мобильном приложении?
Чаще всего люди слушают музыку в наушниках через смартфон, пока куда-то идут, едут или ждут чего-то. Поэтому функция истории в мобильном приложении очень важна. Но, на 2023 год её нет. Если вы попытаетесь повторить те же действия, что и на ПК, то вы увидите только очередь воспроизведения. А возможности перейти в раздел истории не будет. В меню коллекции история прослушивания не отображается.
Стоит отметить, что раньше в Яндекс.Музыке была возможность просматривать историю при использовании мобильного приложения. Она была очень удобной и не мешала другим функциям, поэтому по какой причине разработчики удалили её неизвестно. Но, если вы пользуетесь старой версией приложения, то возможность всё ещё может быть доступна. Чтобы открыть историю воспроизведения, кликните по треку в нижней части экрана и выберите значок с тремя полосками. После этого перейдите в раздел «История».
Несмотря на отсутствие полноценного списка прослушанных треков, в мобильном приложении Яндекс.Музыки всё ещё есть возможность узнать, что вы слушали раньше. Для этого пролистайте главную страницу немного вниз. Там будет раздел «Вы недавно слушали». В нём отображаются исполнители и альбомы, которые вы запускали в последнее время. Это конечно не поможет узнать, какой трек вы пропустили, но хотя его автор станет вам известен.
Плейлисты для вас в Яндекс.Музыке
Яндекс.Музыка отличается хорошей системой подбора персональной музыки. Чтобы получить от неё максимальный эффект, нужно какое-то время попользоваться сервисом. Слушайте треки, лайкайте их, скачивайте, добавляйте в плейлисты и так далее. Это поможет алгоритму понять, какая музыка вам нравится.
После этого обратите внимание на главную страницу сайта и плейлисты, которые располагаются там:
- Плейлист дня. Каждые сутки алгоритм составляет его для вас. Туда попадают, как известные вам треки, так и те песни, которые могут вам понадобится. При этом ведётся счёт, сколько дней подряд вы запускаете этот плейлист;
- Дежавю. Полностью состоит из исполнителей и треков, которые вы не слушали. Подбирается на основе ваших предпочтений;
- Тайник. Сюда попадают песни, которые вы часто слушали раньше, но забыли о них сейчас;
- Премьера. Здесь собраны все новинки от ваших любимых исполнителей.
Кроме того, в конце каждого сезона и года на Яндекс.Музыки появляется тематический плейлист. В нём собираются все песни, которые вы слушали на протяжении определённого времени. Отличный способ вспомнить прошедшие месяцы.
15 скрытых функций «Яндекс.Музыки», о которых вы могли не знать
Мы рассказали о неочевидных возможностях Apple Music и YouTube Music. Пришло время посмотреть, какие скрытые функции есть в «Яндекс.Музыке», втором по популярности платном стриминге у читателей «Афиши Daily».
Включите темную тему
Самое лучшее в темной теме «Яндекс.Музыки» — она есть и в приложении, и на сайте. Если будете на вечеринке ставить музыку с ноутбука, оцените, насколько удобно — свет от экрана не бьет в глаза.
Как это сделать
В приложении зайдите в «Мою музыку» — настройки — «Темная тема». На сайте зайдите в «Мою музыку» — настройки — «Прочее» — «Темная тема»
Подробности по теме
15 функций Apple Music, о которых вы могли не знать
Ищите песню по строчке
Для тех, кто не помнит ни имени музыканта, ни названия песни, но почему-то знает какую-то случайную строчку. «Яндекс.Музыка» найдет песню по строчке, если в каталоге есть ее текст. Иногда песня ищется по напеву, например, «эрондондон» поможет найти песню «Get Low» из Need for Speed: Underground.
Слушайте редакторские и умные плейлисты
В «Яндекс.Музыке» три вида плейлистов: составленные пользователями, редакторами стриминга и алгоритмами. Последних четыре, и они уникальны для каждого слушателя: «Плейлист дня», «Дежавю», «Премьера» и «Тайник». Чем больше песен вы слушаете, чем больше лайкаете или дизлайкаете, тем более интересными они будут. Остальные составлены или редакторами «Яндекс.Музыки», например как «Хайп», или пользователями, например как сборники канала «Всякая годная попса».
Ищите в стриминге музыку, которую услышали в такси
Мобильное приложение распознает музыку, прямо как Shazam, и узнает даже ту песню, которой нет в библиотеке. Но если она есть в сервисе, «Яндекс.Музыка» сразу предложит добавить ее в медиатеку и сохранит в отдельный плейлист.
Как это сделать
В поиске в приложении нажмите на иконку с микрофоном
Настраивайте рекомендации, не заходя в приложение
Конечно, в «Яндекс.Музыке» есть радио. Оно включает треки или по жанру, занятию, настроению, новизне, или на основе каких-то альбомов, треков и плейлистов. Если понравился альбом или плейлист, а треки в нем закончились, включите радио — оно построит бесконечный поток песен по треклисту альбома или плейлиста. Это делается или в приложении для iOS, или на сайте. Треки в радио лайкают и дизлайкают — это повлияет на музыку, которую приложение предложит в будущем. Но самое удобное — лайкать и дизлайкать с экрана блокировки.
Как это сделать
Нажмите на иконку «гамбургера» на плеере и выберите, что сделать с текущим треком. Но работает это только с радио
Анализируем историю прослушивания в «Яндекс.Музыке»
Вот уже почти год я пользуюсь сервисом Яндекс Музыка и меня все устраивает. Но есть в этом сервисе одна интересная страница — история. Она хранит все треки, которые были прослушаны, в хронологическом порядке. И мне, конечно, захотелось скачать ее и проанализировать, что я там наслушал за все время.
Первые попытки
Начав разбираться с этой страницей, я сразу же столкнулся с проблемой. Сервис не загружает все треки сразу, а только по мере скроллинга. Скачивать сниффер и разбираться в трафике мне не хотелось, да и навыков у меня в этом деле на тот момент не было. Поэтому я решил пойти более простым путем эмулирования браузера с помощью selenium.
Скрипт был написан. Но работал он очень нестабильно и долго. Но загрузить историю у него всё-таки получилось. После просто анализа я оставил скрипт без доработок, пока через какое-то время мне снова не захотелось загрузить историю. Надеясь на лучшее, я запустил его. И, конечно же, он выдал ошибку. Тогда я понял, что пора сделать все по-человечески.
Рабочий вариант
Для анализа трафика я выбрал для себя Fiddler из-за более мощного интерфейса для http трафика в отличие от wireshark. Запустив сниффер, я ожидал увидеть запросы к api с токеном. Но нет. Наша цель оказалась по адресу music.yandex.ru/handlers/library.jsx . И запросы к ней требовали полноценной авторизации на сайте. С нее и начнем.
Авторизация
Здесь ничего сложного. Заходим на passport.yandex.ru/auth , находим параметры для запросов и делаем два запроса для авторизации.
auth_page = self.get('/auth').text csrf_token, process_uuid = self.find_auth_data(auth_page) auth_login = self.post( '/registration-validations/auth/multi_step/start', data= ).json() auth_password = self.post( '/registration-validations/auth/multi_step/commit_password', data= ).json()
И вот мы авторизовались.
Загрузка истории
Дальше переходим на music.yandex.ru/user//history , где тоже забираем пару параметров, который нам пригодятся при получении информации о треках. Теперь можно загружать историю. Id треков мы получаем по адресу music.yandex.ru/handlers/library.jsx с параметрами <'owner': , 'filter': 'history', 'likeFilter': 'favorite', 'lang': 'ru', 'external-domain': 'music.yandex.ru', 'overembed': 'false', 'ncrnd': '0.9546193023464256'> . Интерес у меня вызвал тут параметр ncrnd. При запросах Яндекс присваивает этому параметру всегда разные значения, но с одинаковым все тоже работает. Обратно мы получаем историю в виде id треков и Подробную информацию о первых десятках треков. Из подробной информации треков можно сохранить много интересных данных для последующего анализа. Например год выхода, длительность трека и жанр. Информацию об остальных треках получаем c music.yandex.ru/handlers/track-entries.jsx . Все это дело сохраняем в csv и переходим к анализу.
Анализ
Для анализа используем стандартные инструменты в виде pandas и matplotlib.
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('statistics.csv') df.head(3)
№ | artist | artist_id | album | album_id | track | track_id | duration_sec | year | genre |
---|---|---|---|---|---|---|---|---|---|
0 | Coldplay | 671 | Viva La Vida — Prospekt’s March Edition | 51399 | Death And All His Friends | 475739 | 383 | 2008 | rock |
1 | Coldplay | 671 | Hypnotised | 4175645 | Hypnotised | 34046075 | 355 | 2017 | rock |
2 | Coldplay | 671 | Yellow | 49292 | No More Keeping My Feet On The Ground | 468945 | 271 | 2000 | rock |
Меняем питоновские None на NaN и выбрасываем их.
df = df.replace('None', pd.np.nan).dropna()
Начнем с простого. Посмотрим время, которое мы потратили на прослушивание всех треков
duration_sec = df['duration_sec'].astype('int64').sum() ss = duration_sec % 60 m = duration_sec // 60 mm = m % 60 h = m // 60 hh = h % 60 f' ::'
'15 15:30:14'
Но тут можно поспорить насчет точности этой цифры, тк не понятно какую часть трека нужно прослушать, чтобы яндекс добавил ее в историю.
Теперь посмотрим на распределение треков по году выпуска.
plt.rcParams['figure.figsize'] = [15, 5] plt.hist(df['year'].sort_values(), bins=len(df['year'].unique())) plt.xticks(rotation='vertical') plt.show()
Тут то же не все так однозначно, тк у разнообразных сборников “Best Hits” будет стоять более поздний год.
Остальные статистики будут строиться по очень схожему принципу. Приведу пример самых прослушиваемых треков
df.groupby(['track_id', 'artist','track'])['track_id'].count().sort_values(ascending=False).head()
track_id | artist | track | |
---|---|---|---|
170252 | Linkin Park | What I’ve Done | 32 |
28472574 | Coldplay | Up&Up | 31 |
3656360 | Coldplay | Charlie Brown | 31 |
178529 | Linkin Park | Numb | 29 |
289675 | Thirty Seconds to Mars | ATTACK | 27 |
и самых прослушиваемых треков исполнителя
artist_name = 'Coldplay' df.groupby([ 'artist_id', 'track_id', 'artist', 'track' ])['artist_id'].count().sort_values(ascending=False)[. artist_name].head(5)
artist_id | track_id | track | |
---|---|---|---|
671 | 28472574 | Up&Up | 31 |
3656360 | Charlie Brown | 31 | |
340302 | Fix You | 26 | |
26285334 | A Head Full of Dreams | 26 | |
376949 | Yellow | 23 |
Полный код можно найти тут