# 🎡 Navidrome Music Sync ΠœΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²ΠΈΡΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€ ΠΈ синхронизатор ΠΌΡƒΠ·Ρ‹ΠΊΠΈ для **Navidrome**. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ ΠΈΠ»ΠΈ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠΈ, Π°Π»ΡŒΠ±ΠΎΠΌΡ‹ ΠΈ плСйлисты ΠΈΠ· **ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠΈ**, **Spotify**, **Apple Music** ΠΈ **YouTube Music** Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΠΌΠ΅Π΄ΠΈΠ°Ρ‚Π΅ΠΊΡƒ Navidrome с сохранСниСм ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ², ΠΎΠ±Π»ΠΎΠΆΠ΅ΠΊ Π² высоком Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΈ синхронизированных ΠΊΠ°Ρ€Π°ΠΎΠΊΠ΅-тСкстов (`.lrc`). --- ## πŸš€ ВозмоТности - **ΠŸΡ€ΡΠΌΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠΈ (320 kbps)**: - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅ΠΊΠΎΠ², альбомов ΠΈ плСйлистов. - Полная синхронизация Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ плСйлиста **«МнС нравится»** (880+ Ρ‚Ρ€Π΅ΠΊΠΎΠ²). - **Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· Spotify ΠΈ Apple Music**: - Π‘Π΅Π· нСобходимости ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… подписок ΠΈ Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½Ρ‹Ρ… Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ². - Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ Π°ΡƒΠ΄ΠΈΠΎ-ΠΌΠ°Ρ‚Ρ‡ΠΈΠ½Π³ с YouTube Music CDN (Opus 160 / MP3 320k). - **ΠžΠ±Ρ…ΠΎΠ΄ Ρ†Π΅Π½Π·ΡƒΡ€Ρ‹ ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ**: - Если Ρ‚Ρ€Π΅ΠΊ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π Π€ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ ΠΈΠ»ΠΈ Π·Π°Ρ†Π΅Π½Π·ΡƒΡ€Π΅Π½ (Β«Π·Π°ΠΏΠΈΠΊΠ°Π½Β»), Π΄Π²ΠΈΠΆΠΎΠΊ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ источники ΠΈ скачиваСт ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ **Explicit (18+)** Π²Π΅Ρ€ΡΠΈΡŽ. - **Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Navidrome**: - ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎ стандарту: `/music/{Artist}/{Album}/{Track_Number} - {Title}.mp3`. - АвтоматичСскоС скачиваниС построчных ΠΊΠ°Ρ€Π°ΠΎΠΊΠ΅-тСкстов (`.lrc`). - Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Navidrome Ρ‡Π΅Ρ€Π΅Π· Subsonic API (`startScan`) сразу послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. - **Π’Π΅Π±-интСрфСйс & REST API**: - Адаптивный Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Web UI с прогрСсс-Π±Π°Ρ€ΠΎΠΌ Π·Π°Π΄Π°Ρ‡ ΠΈ историСй Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ. - Π€ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ асинхронный Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ интСрфСйса. - ДСдупликация (Π½Π΅ скачиваСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Ρ‚Ρ€Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅). --- ## πŸ› οΈ Установка ΠΈ запуск ### 1. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ (.env) Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠΈ: ```bash cp .env.example .env ``` ### 2. Запуск Ρ‡Π΅Ρ€Π΅Π· Docker Compose ```bash docker compose up -d --build ``` БСрвис Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΏΠΎ адрСсу: `http://127.0.0.1:8005` (ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси). --- ## πŸ”Œ API Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚Ρ‹ - `GET /` β€” Π’Π΅Π±-интСрфСйс управлСния. - `POST /api/download` β€” Запуск Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° скачиваниС ΠΏΠΎ ссылкС: ```json { "url": "https://music.yandex.ru/album/123/track/456" } ``` - `POST /api/sync/yandex-likes` β€” Запуск ΠΏΠΎΠ»Π½ΠΎΠΉ синхронизации ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Ρ‚Ρ€Π΅ΠΊΠΎΠ² ΠΈΠ· ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠΈ. - `GET /api/tasks` β€” Бписок Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈ прогрСсс выполнСния. - `GET /api/history` β€” Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈ статистика Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ.