Skip to content

eugensubachev/spotify-2-yandex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spotify-2-yandex

Скрипт для синхронизации любимых треков из Spotify в в Яндекс.Музыку.

Подходит для:

  • Первого массового импорта любимых треков из Spotify в Я.Музыку;
  • Регулярной синхронизации, скрипт добавляет только новые любимые треки.

Возможности

  • Берёт Liked Songs (любимые треки) из Spotify.
  • Ищет каждый трек в Яндекс.Музыке по комбинации артист + название.
  • Лайкает найденные треки в стандартный плейлист "Мне нравится" в Яндекс.Музыке.
  • Ведёт локальное состояние:
    • при первом запуске — проходит по всем лайкам;
    • при следующих запусках — обрабатывает только новые лайки.
  • Не дублирует лайки в Яндекс.Музыке.
  • Сохраняет хронологию: новые треки оказываются сверху, как в Spotify.

Требования

  • Python 3.10+
  • Аккаунт Spotify + доступ к Spotify Developer Dashboard
  • Аккаунт Яндекс.Музыки + Токен

Установка

git clone https://github.com/eugensubachev/spotify-2-yandex.git
cd spotify-2-yandex

python3 -m venv venv
source venv/bin/activate

pip install -r requirements.txt

Настройка

  1. Создать конфигурационный файл
cp .env.example .env
nano .env
  1. Получить Spotify API ключи

Нужно перейти в Spotify Developer Dashboard и создать новое приложение.

Важно! В URL обязательно указать "http://127.0.0.1:8888/callback", иначе будет ошибка "INVALID_CLIENT".

  1. Получить токен Яндекс.Музыки

Способ получения токена периодически меняется, один из вариантов описан тут.

  1. Заполнить полученные значения
# Spotify API
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback

# Yandex Music API
YANDEX_MUSIC_TOKEN=your_yandex_token

# Локальное состояние синхронизации
STATE_FILE=spotify_yandex_state.json

Первый запуск

При первом запуске:

  • Откроется авторизация Spotify (ссылка появится в терминале или откроется в GUI),
  • Скрипт импортирует все ваши лайки из Spotify,
  • Создаст файл состояния (spotify_yandex_state.json),
  • Добавит найденные треки в «Мне нравится» в Яндекс.Музыке.

Следующие запуски берут только новые лайкнутые треки.

Запуск по распиаснию

Опционально. Для удобства можно настроить работу скрипта по расписанию на домашнем или удалённом сервере. Как минимум, стабильно отрабатывает раз в 10 минут.

Важно! Запуск по расписанию настраивать строго после полного завершения первичного импорта.

Важно! При первичном запуске, после авторизации приложения в Spotify создаётся файл .spotify_token_cache. При переносе скрипта на сервер, этот файл нужно тоже скопировать. Альтернативный вариант - пройти авторизацию приложения повторно.

Сам токен после создания фактически обновлять не нужно, если вы не удалили приложение в Spotify Developer Dashboard, не меняли ключи и не меняли ваш логин/пароль в Spotify.

About

Добавление любимых треков из Spotify в Яндекс.Музыку

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors