Как улучшить рекомендации в «Яндекс.Музыке» и быстро генерировать уникальные плейлисты
Также рассказываем, как лайкать песни горячими клавишами, не отрываясь от игры или работы, и почему это важно.
В отличие от Spotify, который перестал работать в России с 11 апреля, для «Яндекс.Музыки» довольно мало сторонних утилит с дополнительными функциями. Тем не менее они существуют, а некоторые из них добавляют действительно полезные опции. Советуем лучшие расширения и рассказываем, как повысить разнообразие рекомендаций при прослушивании.
Как увеличить набор функций «Яндекс.Музыки»
YaMuTools (Chromium, Firefox) — плагин для браузера, который расширяет функции «Яндекс.Музыки». Среди прочего, он позволяет:
- создавать персонализированные плейлисты, в том числе на основе истории прослушивания в Last.fm;
- генерировать похожие плейлисты;
- сортировать и фильтровать треки;
- находить и удалять дубликаты из плейлистов;
- ставить лайки сразу всем трекам в плейлисте;
- скрыть подкасты и вкладку «Детям» с главной страницы.
После установки YaMuTools на вкладке «Коллекция» появляется кнопка «Коллекционер». С её помощью можно генерировать плейлисты на основе различных параметров, например, составляя подборки из предложений самой «Яндекс.Музыки».
Кроме того, можно создавать подборки треков на основе истории прослушивания и рекомендаций из Last.fm. Для того, чтобы это сделать, необходимо предварительно указать свой логин на сервисе в настройках YaMuTools.
YaMuTools добавляет несколько опций на страницы с плейлистами, в том числе возможность сгенерировать похожую подборку треков. Создание такого плейлиста чаще всего занимает около 10-15 секунд, при этом алгоритмы довольно точно подбирают похожие композиции. В случае с крупными подборками на генерацию может уйти до нескольких минут.
Количество композиций в генерируемых плейлистах можно задать в настройках. Там же можно отрегулировать и другие параметры, в том числе отключить ненужные опции или указать, чтобы расширение не добавляло в плейлисты ремиксы.
YaMuTools — это в первую очередь инструмент для управления плейлистами, но он подходит и для улучшения рекомендаций «Яндекс.Музыки» в целом. Это можно сделать, генерируя подборки треков на основе уже созданных плейлистов. Расширение каждый раз создаёт плейлисты с новыми треками на основе исполнителей из предыдущей подборки.
Расширение поддерживает плейлисты, созданные «Яндексом» или другими пользователями «Музыки». На странице таких подборок появляется кнопка YaMuTools, при помощи которой можно быстро сгенерировать похожую подборку треков. В частности, это касается и персонального «Плейлиста дня», который «Яндекс» составляет ежедневно. На его основе YaMuTools создаёт большие уникальные подборки, учитывая предпочтения слушателя.
Как улучшить рекомендации
Одна из жалоб пользователей «Яндекс.Музыки» связана с тем, что сервис часто рекомендует похожие композиции. Это происходит в том числе при прослушивании «умного» потока «Моя волна» или «Потоков по плейлисту».
Чтобы это исправить, необходимо перейти в настройки прослушиваемого потока и выбрать параметр «Незнакомое» в графе «По характеру». Сразу после этого алгоритмы «Музыки» начнут рекомендовать гораздо больше треков, которые прежде не попадались.
Важно отметить, что в случае с «потоками» сервис не запоминает настройки. Это означает, что активировать параметр «Незнакомое» необходимо каждый раз, когда вы включаете «поток». В ином случае сервис продолжит предлагать много знакомых треков. Примечательно, что настройки в «Моей волне» сохраняются.
В целом же на точность и разнообразие рекомендаций больше всего влияет количество лайков, которые вы поставили на композиции, альбомы и исполнителей. В «Яндексе» сообщают, что чем больше лайков по соотношению к дизлайкам, тем лучше работает система рекомендаций. Поэтому в компании советуют пролистывать непонравившиеся треки, а дизлайки ставить только тем композициям, которые вы в принципе никогда не хотите встречать.
Как настроить глобальные горячие клавиши
Сделать это можно при помощи расширения «Управление плеером» (Chromium, Firefox). После его установки необходимо перейти на страницу настроек горячих клавиш — chrome://extensions/shortcuts в браузерах на базе Chromium или about:addons в Firefox.
На этой странице можно выбрать сочетания клавиш для управления всеми основными функциями «Яндекс.Музыки». При желании можно указать, чтобы выбранные комбинации работали по всей операционной системе, а не только в браузере. Это даёт возможность управлять воспроизведением и ставить лайки композициям, даже находясь в игре.
Как я доделал функции за Яндекс.Музыкой
Можно ли без официального API создавать плейлисты и удалять дубликаты? Статья описывает расширение для браузеров на Chromium. Преследуя цель добавить новые функции на сайт Яндекс.Музыки.
Мой первый крупный опыт работы с JavaScript и что из этого вышло. В решении не используется библиотека от MarshalX, не запрашивается логин/пароль.
Небольшая предыстория. Проект является просто хобби. Это должно прояснить мои решения и качество кода. На протяжении нескольких лет активно пользовался Яндекс.Музыкой, курировал тему на 4PDA. Отсюда мне известны некоторые больные точки сервиса, которые Яндекс либо игнорирует, либо не может позволить себе сделать ввиду гиковой направленности.
Функционал
Наибольшее количество функций связано с созданием плейлистов и работой с ними, в том числе модификации.
В качестве источника треков выступают:
- Раздел новых релизов. Как правило, не новый пользователь, получает в этом разделе только персональный набор релизов от отслеживаемых исполнителей и близких к ним в виде синглов и альбомов. Расширение позволяет собрать все треки в один плейлист.
- Last.fm. Расширение позволяет импортировать различные рекомендации сервиса. Например, плейлист «Соседи» будет содержать треки, которые слушают пользователи с похожим музыкальным вкусом. Плейлист «Микс» поделит треки как на ранее прослушиваемые, так и новые рекомендации. Кроме того, есть топ прослушиваний за период и любимые треки.
Стена рекомендаций. Ранее Яндекс.Музыка предлагала ленту рекомендаций по адресу /feed. На текущий момент страница недоступна. Но некоторые API по-прежнему отвечают. Среди источников: треки малоизвестных исполнителей, давно не прослушиваемое, недельный чарт и другое.- Без категории. На страницы исполнителя доступна команда сбора дискографии за некоторый период. Например, все треки исполнителя за 2 года; Еще один плейлист «Мои дизлайки», собирает все известные дизлайки, но не в порядке добавления; Плейлист «Из истории» подбирает случайные треки из истории прослушиваний самого Яндекс.
Под работой и модификацией подразумевается:
- Создать похожий плейлист. Текущий набор треков передается Last.fm, ответ фильтруется по заданному значению схожести, который также считает Last.fm.
- Поиск дубликатов. Треки с одинаковым id удаляются, схожие названия перемещаются наверх списка на пользовательскую модерацию. Остальные треки остаются на своем месте.
- Фильтр треков. Позволяет удалить: диз/лайки; неоригинальные версии треков (mix, radio, cover и прочее); недавно игравшее; названия с кириллицей; вычесть треки другого плейлиста.
- Сортировка. Не временная, удаляет треки и вставляет заново с новым порядком по исполнителю или названию.
- Лайкер. Массовая постановка/снятие диз/лайка на все треки плейлиста.
- Экспортер. Формирует текстовый список в виде «исполнитель — трек», который можно отдать другого сервису. Например, перенести в Spotify.
Принцип работы
Текущая страница проверяется по url. Если для нее есть функционал, происходит поиск ключевого элемента страницы, к которому добавляется элемент от расширения (кнопка и выпадающий список). Реагируя на клик, обрабатывающий код, как правило, выводит уведомление (для длительных операций).
Операции, связанные с модификацией, требуют freshCsrf. Его можно получить выполнив GET-запрос на /api/v2.1/handlers/auth. Параметры для запроса можно узнать из консоли разработчика по фильтру XHR. Оттуда были получены и все прочие адреса. Буквально методов тыка, ручных кликов по сайту.
Постарался максимально сократить разрешения — это ограниченный набор адресов, связанный с Яндекс.Музыкой и last.fm, чтобы иметь возможность совершать запросы, а также picsum.photos для загрузки случайных обложек к плейлистам.
Все используемые данные пользователя никуда не передаются и никак не хранятся. За исключением передачи логина с запросами к last.fm.
Ссылки
Расширение доступно в Chrome Web Store
Исходный код на GitHub вместе с обратной связью
Яндекс.Музыка запустила сайт быстрого переноса треков из Apple Music и Spotify

В закладки

Сервис Яндекс.Музыка запустил отдельный сайт, позволяющий быстро перенести композиции из других стриминговых музыкальных сервисов.
Он копирует треки и плейлисты, только ту музыку, которая есть в базе. Поддерживаются Apple Music, Spotify, Deezer и Last.fm. Позднее появится YouTube Music.
Для переноса данных нужно только авторизоваться в нужном вам сервисе из списка. Дальше система всё сделает автоматически.
Длительность процесса зависит от объёма вашей медиатеки. В среднем, на это уходит до 5 минут.
Текущий музыкальный трек по команде в чате
Если вы проигрываете фоновую музыку на стриме из сервиса Яндекс.Музыки или Вконтакте, а зрители достают вас вопросом о том, какой трек сейчас играет, есть небольшое решение для Streamlabs Chatbot.
- Для начала понадобится аккаунт на last.fm, создаем аккаунт, если у вас его ещё нет. Для справки — last.fm с помощью плагинов к медиаплеерам собирает информацию о музыке, которую слушают пользователи, и на основе полученных данных автоматически составляет индивидуальные и общие чарты.
- Устанавливаем плагин Web Scrobbler для Google Chrome (Яндекс Браузера или любого другого браузера на Chromium).
- Авторизуем свой last.fm аккаунт в настройках плагина, чтобы он мог записывать названия проигрываемых треков в last.fm.
- Теперь скачиваем плагин для Streamlabs Chatbot, который выводит текущий трек из last.fm, и устанавливаем его.
После установки в настройках плагина можно настроить команду для вывода текущего трека в чат, тип отображения названия песни, а также сообщение бота в случае если музыка в данный момент не играет.
Инструкция по установке скриптов
Установите Python 2.7.13, если не ставили его при установке Streamlabs Chatbot. Распакуйте архив скрипта и скопируйте его в папку Scripts вашего чат-бота. Обычно, если вы не меняли стандартную папку установки чат-бота, она находится по пути:
C:\Program Files\Streamlabs Chatbot\Services\Scripts
Запустите Streamlabs Chatbot и откройте вкладку Scripts, нажмите на шестерёнку в правом верхнем углу окна. Укажите путь до папки Lib установленного Python 2.7.13 и перезапустите Streamlabs Chatbot. По умолчанию Python устанавливается в корень диска C. Например:
C:\Python27\Lib
А здесь можно почитать о настройках самого Streamlabs Chatbot.