Экспорт плейлиста из Яндекс.Музыки в 2026: когда API закрыт, а расширения сломались (JS-сниппет)
Введение: Хроника боли
Любой, кто как и я пытался недавно перенести свою медиатеку из Яндекс.Музыки в столкнулся с тем, что привычные инструменты превратились в тыкву.
Популярные сервисы для трансфера (вроде TuneMyMusic или Soundiiz) больше не принимают прямые ссылки на плейлисты Яндекса. Расширения для браузера (YaMuTools и аналоги) после обновления дизайна Яндекс.Музыки выдают ошибки или смущенно "не включаются".
В этой статье я расскажу, почему всё сломалось, и поделюсь рабочим JS-скриптом, который помог мне вытащить плейлист на 1000+ треков за пару минут.
Почему всё сломалось?
2. Реактивный фронтенд и Virtual Scroll. Новый дизайн Яндекс.Музыки — это полноценное SPA (Single Page Application)
- Обфускация классов: Раньше можно было найти треки по классу .d-track. Теперь классы генерируются динамически или вовсе отсутствуют семантические привязки.
- Ленивая загрузка (Lazy Loading): Это главная проблема. В коде страницы (DOM) существуют только те 20-30 треков, которые вы видите на экране прямо сейчас. Как только вы скроллите вниз, верхние узлы удаляются из DOM, чтобы экономить память.
Именно поэтому, если просто выделить страницу Ctrl+A или попытаться спарсить её через document.querySelectorAll, вы получите лишь малую часть списка.
Решение: Observer Pattern «на коленке»
Раз мы не можем запросить весь список у сервера (API закрыт) и не можем забрать его со страницы разом (Virtual Scroll), нам остается один путь имитировать поведение пользователя.
Мы напишем скрипт, который:
- «Смотрит» на экран с интервалом в 1 секунду.
- Находит ссылки на треки и артистов (единственное, что остается неизменным — это наличие ссылок href с подстроками /artist/ и /track/).
- Складывает уникальные связки «Артист — Трек» в Set (чтобы избежать дублей).
- В конце генерирует .txt файл и отдает его вам.
Вам нужно лишь запустить его и пролистать плейлист.
Инструкция (Working Method)
Этот способ не требует установки расширений и ввода паролей. Всё происходит локально в вашей консоли.
Шаг 1. Подготовка
Откройте ваш плейлист в Яндекс.Музыке (например, «Мне нравится») в браузере. Обновите страницу, чтобы убедиться, что вы в самом верху.
Шаг 2. Магия консоли
Нажмите F12 (или правый клик -> «Просмотреть код» / Inspect), перейдите во вкладку Console.
Скопируйте и вставьте следующий код:
Шаг 3. Сбор данных
После нажатия Enter скрипт начнет работать. Просто листайте плейлист вниз (мышкой, колесиком или зажав клавишу End). Не обязательно листать медленно, главное прогрузить все элементы.
Вы увидите, как счетчик в консоли растет: 📥 В памяти сохранено треков: NNN
Шаг 4. Сохранение
Когда вы дойдете до конца списка и счетчик перестанет расти, напишите в этой же консоли команду:
Нажмите Enter. Браузер предложит сохранить файл yandex_music_export.txt.
Что делать с файлом?
Полученный файл имеет формат: Plaintext
- Идете на TuneMyMusic (или аналог).
- Выбираете источник: «Из файла» (Upload file).
- Загружаете наш .txt.
- Выбираете целевую платформу (Spotify, Apple Music, YouTube).
- Готово!
Заключение
Способ работает на текущей версии Яндекс.Музыки (начало 2026 года). Вероятно, в будущем верстка снова изменится, но принцип поиска «по ссылкам» (href*="/track/") - один из самых надежных, так как ссылки нужны самому сайту для навигации.
Пост помог написать Germini, он же написал код!