No description
  • Python 77.8%
  • HTML 9.6%
  • CSS 6.6%
  • JavaScript 4%
  • PLpgSQL 1.8%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nikita Mikhaylov 410ee83d61
All checks were successful
CI/CD / deploy (push) Successful in 17s
ui фиксы
2026-09-15 02:02:42 +03:00
.forgejo/workflows Добавлен CD/CD 2 2026-09-15 01:47:04 +03:00
api Добавлена поддержка регулярок 2026-09-15 01:55:02 +03:00
connectors Добавлена поддержка регулярок 2026-09-15 01:55:02 +03:00
db/init Сделана база данных, добавлено создание аккаунта и сохранение токена яндекс музыки 2026-06-11 22:23:39 +03:00
external_tools Добавлена возможность выбирать качество обложки и её тип в альбоме (вшита или нет). Так же реализована загрузка трека чанками 2026-06-11 19:03:15 +03:00
tests Добавлена поддержка регулярок 2026-09-15 01:55:02 +03:00
web ui фиксы 2026-09-15 02:02:42 +03:00
.dockerignore Реализовано скачивание альбомами 2026-06-09 23:47:12 +03:00
.gitignore Сделана база данных, добавлено создание аккаунта и сохранение токена яндекс музыки 2026-06-11 22:23:39 +03:00
.gitmodules добавлен gitmodules 2026-08-24 23:19:17 +03:00
.python-version Реализовано скачивание альбомами 2026-06-09 23:47:12 +03:00
docker-compose.yml Сделаный иконки, страница navidrome (пока хардкод), возможность скачивания на сервер 2026-06-15 00:31:15 +03:00
Dockerfile Поменян образ на apline 2026-06-11 17:57:56 +03:00
main.py Реализовано скачивание альбомами 2026-06-09 23:47:12 +03:00
pyproject.toml Сделана база данных, добавлено создание аккаунта и сохранение токена яндекс музыки 2026-06-11 22:23:39 +03:00
README.md Добавлена возможность выбирать качество обложки и её тип в альбоме (вшита или нет). Так же реализована загрузка трека чанками 2026-06-11 19:03:15 +03:00
uv.lock Сделана база данных, добавлено создание аккаунта и сохранение токена яндекс музыки 2026-06-11 22:23:39 +03:00

local-music

FastAPI

The API exposes Yandex Music metadata endpoints and Swagger docs.

Environment:

TOKEN=...

TOKEN can also be passed at runtime through the authorization endpoint.

Install dependencies and start the service:

uv sync
uv run uvicorn api.main:app --reload

Or start with Docker Compose:

docker compose up --build

Swagger UI:

http://127.0.0.1:8000/docs

Web UI:

http://127.0.0.1:8000/yandex

Initial endpoints:

Method Path Description
GET /health Service healthcheck
GET /yandex Yandex Music web page
POST /api/yandex/auth Initialize Yandex Music provider with token
GET /api/yandex/tracks/{track_id} Yandex Music track info
GET /api/yandex/tracks/{track_id}/audio Low-traffic cached audio preview
GET /api/yandex/albums/{album_id} Yandex Music album info with tracks
GET /api/yandex/albums/fragment?album_id=... Yandex Music album HTML fragment
GET /api/yandex/cover?uri=...&size=400x400 Proxied Yandex Music cover
GET /api/yandex/albums/download?album_id=...&albumQuality=normal&coverQuality=400 Download album archive through browser

Authorize Yandex Music:

curl -X POST http://127.0.0.1:8000/api/yandex/auth \
  -H "Content-Type: application/json" \
  -d '{"token": "..."}'

Responses use a common envelope:

{
  "ok": true,
  "data": {},
  "error": null
}

Audio preview files are cached in:

storage/cache/yandex/tracks/

Native FLAC downloads require ffmpeg for remuxing Yandex Music flac-mp4 responses to .flac without re-encoding. The Docker image installs ffmpeg automatically.