- PVSM.RU - https://www.pvsm.ru -
Иногда хочется выгрузить список треков из плейлиста Яндекс Музыки — например чтобы:
сохранить треклист
перенести музыку в другой сервис
сделать бэкап
проанализировать плейлист
Ещё одна причина — версии треков. Иногда в каталоге Яндекс Музыки встречаются отредактированные версии песен (например, с запиканной ненормативной лексикой или изменёнными строками). Поэтому бывает полезно сохранить исходный список треков из плейлиста, чтобы при необходимости найти оригинальные версии композиций в других сервисах.
Но у Яндекс Музыки нет функции экспорта.
Я решил написать маленький скрипт, который решает эту проблему прямо в браузере.
Яндекс Музыка использует виртуализированный список.
Это значит, что:
в DOM одновременно находится только небольшая часть треков
остальные подгружаются при прокрутке
Поэтому обычный парсинг страницы не работает — нужно учитывать эту особенность.
Я написал небольшой JavaScript скрипт, который:
собирает треки во время прокрутки
корректно работает с виртуализированным списком
позволяет экспортировать треки в TXT или CSV
Работает прямо через DevTools Console.
Без расширений, без установки.
1️⃣ Открываем плейлист в Яндекс Музыке
2️⃣ Открываем DevTools
F12 → Console
3️⃣ Вставляем скрипт
4️⃣ Пролистываем плейлист вниз
5️⃣ Нажимаем Finalize capture
6️⃣ Скачиваем список треков
TXT
Artist - Title
CSV
Artist,Title,Duration
Если в плейлисте есть:
Daft Punk - One More Time
The Weeknd - Blinding Lights
Justice - D.A.N.C.E.
TXT файл будет выглядеть так:
Daft Punk - One More Time
The Weeknd - Blinding Lights
Justice - D.A.N.C.E.
Сайт Яндекс Музыки использует virtualized list.
Это означает, что треки:
не присутствуют в DOM сразу
появляются только при прокрутке
Поэтому скрипт собирает их во время скролла.
Там же есть инструкция и README.
Если будет интерес к проекту, можно добавить:
экспорт в JSON
автоматический скролл
поддержку альбомов и артистов
браузерное расширение
Иногда маленький скрипт может решить очень конкретную проблему.
Надеюсь этот инструмент окажется полезным.
Если понравилось — поставьте ⭐ репозиторию.
Автор: idaniil24
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/447501
Ссылки в тексте:
[1] Скрипт выложен на GitHub: https://github.com/idaniil24/ym-track-collector
[2] Источник: https://habr.com/ru/articles/1013718/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1013718
Нажмите здесь для печати.