Предыстория
В 2022 году из России ушли многие музыкальные лейблы и пользователи стали замечать, что у зарубежных исполнителей начали пропадать треки. Так, например, у Britney Spears сейчас доступно всего три трека 😄
В прошлом, 2023 году я мигрировал в Spotify и для своего удобства сделал небольшой сервис по экспорту плейлистов в текстовые файлы. Впоследствии он стал достаточно популярным и по соответствующим запросам в поисковиках сервис можно наблюдать на первых страницах.
В общем, сегодня я зашел почитать файл с фидбеком от пользователей и увидел, что кто-то жалуется, на отсутствие каких-то треков в экспортированном файле.
Из 3960 треков выгрузилось 3610.
Написал пользователь
В корректности работы моего скрипты у меня не было сомнений, так как он просто обращается по API к Яндексу, получает файлик JSON и оттуда уже парсит треки — идет работа с текстом, так что даже большой плейлист экспортируется за несколько секунд, что-то «потерять» невозможно. Решил я посмотреть, что происходит с треками в двух ситуациях — с включенным VPN, без входа в аккаунт и когда произведен вход в аккаунт. Оказалось, в этих двух случаях количество доступных треков отличается!
Как вы можете видеть, здесь треков явно больше, чем 3 🙂 Если выйти из аккаунта, но зайти с российским IP-адресом, то ситуация будет все такая же печальная. В общем, это натолкнуло меня на мысль, что эти «запрещенные» треки не экспортируются, потому что сайт, с которого вы читаете этот пост и с которого производится экспорт треков находился на сервере в Санкт-Петербурге.
Еще один инсайт, который ко мне пришел потом — Яндекс отображает удаленные треки в плейлистах не просто когда вы заходите с иностранного IP, а когда заходите с IP страны, где работает Яндекс Музыка (за исключением РФ, конечно же). Например, это Казахстан.
Как решать проблему
Весь сайт переносить на другой сервер мне было не очень удобно, поэтому я сделал телеграм-бота Yandex Music Export, который работает, на сервере в Алматы. Факт: это сработало. Плейлист с удаленными треками бот экспортировал полностью, а через сайт получился плейлист без этих самых треков.
Аналогично можно использовать консольную программу YandexMusicExport, если, опять же, включить VPN Казахстана. Я также сделал Python-скрипт для этой же цели, ибо он весит в разы меньше, чем скомпилированная на C# программа.
TL;DR
- Для экспорта плейлистов, в которых есть «удаленные» треки используйте телеграм-бота Yandex Music Export
- Если вдруг бот не работает, то скачайте консольную программу YandexMusicExport, включите на вашем устройстве VPN Казахстана и запустите экспорт
- Не забывайте делать плейлист публичным