Skip to content

S4YN3X/SpotySync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpotySync

SpotySync UI

**SpotySync** — веб-сервис для мгновенного переноса плейлистов из Яндекс.Музыки в Spotify. Просто введите логин Яндекса → выберите плейлист → получите готовый плейлист в Spotify.

Сайт: spotysync.ru


Возможности

  • Поиск публичных плейлистов Яндекс.Музыки по логину
  • Перенос плейлиста «Мне нравится» (все лайкнутые треки)
  • Прогресс-бар в реальном времени (SSE)
  • Очередь задач — пользователи обрабатываются по одному
  • Глобальный счётчик перенесённых треков
  • История переносов в браузере (localStorage)
  • Восстановление результата после перезагрузки страницы

Стек технологий

Компонент Технология
Backend Python 3.12, FastAPI, Uvicorn
Spotify API Spotipy
Yandex Music Internal API + yandex-music (token)
Frontend HTML / CSS / Vanilla JS
Стриминг SSE (Server-Sent Events)
Деплой Docker, docker-compose

Быстрый старт

1. Клонируйте репозиторий

git clone https://github.com/S4YN3X/spotysync.git
cd spotysync

2. Создайте файл .env

SPOTIFY_CLIENT_ID=client_id
SPOTIFY_CLIENT_SECRET=client_secret
SPOTIFY_REDIRECT_URI=http://localhost:8000/callback
YANDEX_TOKEN=токен_яндекса

YANDEX_TOKEN нужен для загрузки плейлиста «Мне нравится» и получения полных данных о треках.

3. Подготовьте папку данных

mkdir -p data
echo '{"total_tracks_synced": 0, "total_playlists": 0}' > data/stats.json

4. Запустите через Docker

docker-compose up --build -d

Откройте в браузере: http://localhost:8000


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

  1. Откройте сайтspotysync.ru (или localhost:8000 локально)
  2. Введите логин от Яндекс.Музыки (например, ivan.ivanov)
  3. Выберите плейлист — появится список всех открытых плейлистов + «Мне нравится»
  4. Дождитесь переноса — прогресс отображается в реальном времени
  5. Откройте в Spotify — нажмите кнопку и сохраните плейлист в свою библиотеку

⚠️ Приватные плейлисты не будут найдены. Сделайте их открытыми в настройках Яндекс.Музыки.


Структура проекта

app/
├── main.py              # FastAPI backend
├── Dockerfile
├── docker-compose.yml
├── .env                 # Переменные окружения
├── data/
│   └── stats.json       # Глобальная статистика
└── static/
    ├── index.html        # Главная страница
    ├── app.js            # Frontend логика
    └── style.css       # Стили

Конфигурация

Очередь

Количество одновременных переносов настраивается в main.py:

MAX_CONCURRENT_JOBS = 1

Статистика

Файл статистики хранится в data/stats.json и монтируется через Docker volume:

volumes:
  - ./data:/app/data

Roadmap

  • Rate limiting по IP
  • Кэширование результатов поиска Spotify
  • SQLite для серверной истории переносов
  • Админ-панель со статистикой

Лицензия

MIT License — см. LICENSE


Сделано с ❤️ by S4YN3X

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors