ИТ

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

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

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

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

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

Что передаётся

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

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

Требования

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

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

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

git clone https://github.com/razqqm/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 automatically.

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

Deezer требует другого подхода. Вы получите ARL cookie из вашего браузера:

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

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

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

Scenario: You have 240 liked tracks, 12 playlists, 50 liked artists in Yandex Music. You want to switch to 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 секунд)

Result: Your entire library is now on Deezer, playlists intact, zero manual work beyond running 5 commands.

Синхронизация только избранных (выборочно)

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

Дополнительные синхронизации

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

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

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

Все ваши данные Яндекс.Музыки и Deezer обрабатываются локально на вашем компьютере. Инструмент только отправляет поисковые запросы к API Deezer (просто текст артиста + название) для поиска соответствующих треков. Ваша исходная музыкальная библиотека никогда не покидает ваш компьютер. OAuth токены и ARL cookies хранятся в вашем локальном файле .env, а не загружаются куда-либо.

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

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

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

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

Заключение

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

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