Яндекс Музыка: как вернуть «удаленные» треки из плейлистов




Предыстория

В 2022 году из России ушли многие музыкальные лейблы и пользователи стали замечать, что у зарубежных исполнителей начали пропадать треки. Так, например, у Britney Spears сейчас доступно всего три трека 😄

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

Сервис для экспорта плейлистов Яндекс Музыки — https://files.u-pov.ru/programs/YandexMusicExport

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

Из 3960 треков выгрузилось 3610.

Написал пользователь

В корректности работы моего скрипты у меня не было сомнений, так как он просто обращается по API к Яндексу, получает файлик JSON и оттуда уже парсит треки — идет работа с текстом, так что даже большой плейлист экспортируется за несколько секунд, что-то «потерять» невозможно. Решил я посмотреть, что происходит с треками в двух ситуациях — с включенным VPN, без входа в аккаунт и когда произведен вход в аккаунт. Оказалось, в этих двух случаях количество доступных треков отличается!

Britney Spears на Яндекс Музыке без входа в аккаунт с включенным VPN

Как вы можете видеть, здесь треков явно больше, чем 3 🙂 Если выйти из аккаунта, но зайти с российским IP-адресом, то ситуация будет все такая же печальная. В общем, это натолкнуло меня на мысль, что эти «запрещенные» треки не экспортируются, потому что сайт, с которого вы читаете этот пост и с которого производится экспорт треков находился на сервере в Санкт-Петербурге.

Еще один инсайт, который ко мне пришел потом — Яндекс отображает удаленные треки в плейлистах не просто когда вы заходите с иностранного IP, а когда заходите с IP страны, где работает Яндекс Музыка (за исключением РФ, конечно же). Например, это Казахстан.

Как решать проблему

Весь сайт переносить на другой сервер мне было не очень удобно, поэтому я сделал телеграм-бота Yandex Music Export, который работает, на сервере в Алматы. Факт: это сработало. Плейлист с удаленными треками бот экспортировал полностью, а через сайт получился плейлист без этих самых треков.

Интерфейс бота

Аналогично можно использовать консольную программу YandexMusicExport, если, опять же, включить VPN Казахстана. Я также сделал Python-скрипт для этой же цели, ибо он весит в разы меньше, чем скомпилированная на C# программа.

TL;DR





Добавить комментарий

Копирование только с указанием прямой активной ссылки на оригинальный материал.