ИТ

music-sync: Перенесите вашу библиотеку Yandex Music на Deezer за минуты

Яндекс Музыка сдаёт позиции. На платформу всё сильнее давят, проблемы с лицензированием растут, будущее под вопросом. Если ты был верным подписчиком с сотнями избранных треков и десятками плейлистов, вопрос не в том, стоит ли переходить, а в том, как перейти, не потеряв всё, что ты собирал годами. Большинство стриминговых сервисов специально усложняют этот процесс: твоя библиотека заперта за проприетарным API, а перенос куда-то ещё требует часов ручного копирования, поиска треков по одному на другой платформе и пересоздания плейлистов с нуля.

Для этого и существует music-sync. Инструмент полностью автоматизирует перенос библиотеки из Яндекс Музыки в Deezer за считанные минуты — без ручной работы, без потерянных данных, без брошенных плейлистов. Он разбирается с тем, что стриминговые сервисы намеренно прячут: несовпадения ID треков, различия в региональной доступности, логику дедупликации и умный подбор замен, когда точного совпадения на целевой платформе нет. В этом руководстве ты узнаешь, как устроен music-sync, как настроить его за 5 минут, какие данные переносятся и как они защищены, и что делать с нестандартными ситуациями вроде региональных различий и недоступных треков.

Что делает music-sync

Изображение статьи — wp-image-10775

music-sync — это инструмент командной строки на Python, который подключается к твоему аккаунту Яндекс Музыки, извлекает музыкальные данные, ищет соответствующие треки в Deezer и создаёт аналогичные плейлисты и избранное. Он справляется с тем, что сервисы намеренно усложняют.

Что переносится

  • Лайкнутые треки → добавляются в избранное Deezer с подбором альтернатив
  • Плейлисты → создаются новые плейлисты в Deezer с той же структурой и порядком треков
  • Лайкнутые исполнители и альбомы → экспортируются в виде списков для ручного добавления в избранное
  • Дедупликация → пропускает треки, которые уже есть в избранном Deezer, чтобы не плодить дубли
  • Механизм повторных попыток → пробует несколько стратегий поиска для ненайденных треков

Установка и настройка

Что понадобится

  • Python 3.8 или новее
  • pip (менеджер пакетов Python)
  • Аккаунт Яндекс Музыки (бесплатный или премиум)
  • Аккаунт Deezer (бесплатного тарифа достаточно)
  • ~5 минут на настройку

Шаг 1: Клонирование и установка

Склонируй репозиторий music-sync и установи зависимости:

git clone https://github.com/ilia-ae/music-sync.git
cd music-sync
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

Шаг 2: Авторизация в Яндекс Музыке

Яндекс Музыка использует OAuth для безопасной аутентификации:

python3 get_token.py

Браузер по умолчанию откроется автоматически. Войди в свой аккаунт Яндекса, разреши доступ, и скрипт сам сохранит OAuth-токен в .env.

Шаг 3: Авторизация в Deezer

С Deezer чуть сложнее. Тебе нужно достать ARL-куку из браузера:

  1. Открой https://www.deezer.com в браузере и войди в аккаунт
  2. Открой DevTools (нажми F12)
  3. Перейди на вкладку Application → Cookies → deezer.com
  4. Найди куку с именем arl и скопируй её значение
  5. Запусти скрипт авторизации Deezer:
python3 deezer_auth.py

Как пользоваться music-sync

Полный перенос библиотеки (самый частый сценарий)

Ситуация: У тебя 240 лайкнутых треков, 12 плейлистов, 50 любимых исполнителей в Яндекс Музыке. Ты хочешь перейти на Deezer.

Процесс:

  1. Запусти yandex_export.py → извлечёт все данные (5 секунд)
  2. Запусти sync.py → найдёт совпадения для ~95% треков (2 минуты)
  3. Посмотри sync_report.json → увидишь, что не нашлось
  4. Запусти retry_missing.py → подберёт альтернативные версии (1 минута)
  5. Запусти apply_retry.py → добавит их в Deezer (30 секунд)

Результат: Вся твоя библиотека теперь в Deezer, плейлисты на месте, ноль ручной работы, кроме запуска 5 команд.

Перенос только избранного (выборочно)

Перед запуском sync.py открой data/yandex_export.json и удали треки, которые не нужны. Оставь только самое любимое. Затем запусти sync.py как обычно — синхронизируются только оставшиеся треки.

Инкрементальная синхронизация

Запусти yandex_export.py ещё раз, чтобы получить актуальные данные. Затем запусти sync.py — он автоматически пропустит дубликаты и ранее синхронизированные треки. В Deezer добавятся только новые треки.

Частые вопросы

Какие данные хранятся локально?

Все данные из Яндекс Музыки и Deezer обрабатываются локально на твоём компьютере. В Deezer API уходят только поисковые запросы — имя исполнителя и название трека, больше ничего. Сама библиотека не покидает твой компьютер. OAuth-токены и ARL-куки хранятся в локальном файле .env и никуда не загружаются.

Что происходит с треками, которых нет в Deezer?

Они записываются в sync_report.json как «missed_tracks». Можно запустить retry_missing.py, чтобы попробовать альтернативные стратегии поиска. Если трек всё равно не находится, решай сам — пропустить его или поискать вручную в Deezer.

Работает ли это с другими стриминговыми сервисами?

Пока что music-sync поддерживает перенос из Яндекс Музыки в Deezer из коробки. Поддержка Spotify и Apple Music в планах. Архитектура модульная, так что добавить новые сервисы несложно.

Итог

Если ты застрял на Яндекс Музыке, потому что ручной перенос казался неподъёмным, music-sync убирает это препятствие. Неважно, 50 у тебя любимых треков или 500 — весь процесс займёт минуты, а не часы.

Оцените статью