Понадобилось переехать с Яндекс Музыки на Spotify. Библиотека — 7000 лайков, сотня плейлистов. Думал, вопрос на десять минут. Оказалось — нет.
TuneMyMusic — просит логин и пароль от Яндекса. С двухфакторкой не входит, а отдавать пароль от Яндекс ID (почта, Такси, Пэй) чужому сайту — так себе идея. Бесплатно 500 треков и только под VPN.
Soundiiz — то же самое, 200 треков на плейлист, и люди пишут, что после него приходит письмо от Яндекса о подозрительном входе из США.
FreeYourMusic — 600 треков пробно, дальше платно и только иностранной картой.
Гайды с DTF за 2025 год — все уже сломались, потому что у Яндекс Музыки нет открытого API, и каждый сервис держится на честном слове.
Открытый скрипт на Python с GitHub, который я переписал наполовину. Работает на вашем компьютере, ходит в оба сервиса напрямую, посредников нет.
Пароль от Яндекса не нужен: скрипт использует токен — временный ключ, который выдаёт сам Яндекс на своей странице входа. Отзывается в любой момент. Со стороны Spotify вы создаёте своё «приложение» в кабинете разработчика — пять кликов, никто кроме вас к нему доступа не имеет.
Переносит всё: «Мне нравится» в том же порядке, плейлисты с обложками, альбомы, подписки на артистов. И — важно — сверяет длительность и артиста, так что вместо оригинала не прилетит караоке-версия, как у сервисов, которые берут первый попавшийся результат.
Как это делается, коротко
developer.spotify.com/dashboard → Create app → Redirect URI https://open.spotify.com → скопировать Client ID и Client Secret.
Открыть страницу входа Яндекса по специальной ссылке, войти как обычно, скопировать токен из адресной строки.
Скачать скрипт, pip install -r requirements.txt, задать три переменные окружения, запустить.
Ждать.
Подробно, со всеми командами для Windows и Mac и ответами на вопросы, — в гайде в репозитории: github.com/BuevichRoman/yandex2spotify (файл GUIDE.md).
Spotify пропускает примерно 700 треков в сутки для новых приложений. Обойти нельзя. Скрипт это понимает: упирается в лимит, пишет «возвращайся после 14:07 завтра» и сохраняет прогресс. Запускаете ту же команду на следующий день — продолжает с того места. Библиотека на 3 000 треков — четыре-пять дней по одному запуску.
Не нашлось у меня меньше процента библиотеки — мелкие лейблы и VK-релизы, которых в Spotify просто нет. Скрипт выдаёт их списком в конце.
Понимаю. Терминал, токены, пять дней перезапускать — не всем это надо.Пишите в Telegram: absolute_of — сделаю за вас, паролей не спрошу, договоримся. Вопросы по скрипту — в комментарии, отвечаю.