Все кейсы

Интеграция каталога MusicBrainz

Подключил каталог MusicBrainz (127 000+ артистов), скробблинг в ListenBrainz, Telegram Mini App для мобильного доступа к библиотеке.

NuxtTypeScriptTelegram Mini App
Интеграция каталога MusicBrainz

Задача

Люди загружают музыку, а у половины файлов теги битые - "Track 01", "Unknown Artist", обложки нет.  Заставить человека вручную расставить метаданные для 500 треков нереально.  Плюс просили мобильный доступ, но нативное приложение не потянули бы по бюджету.

Решение

Подключил MusicBrainz - открытую базу с 127 000+ артистами.  При загрузке система вытаскивает теги через music-metadata и ищет совпадение в API: сначала точный поиск по артисту + альбому, потом нечеткий по названию, в крайнем случае - по акустическому отпечатку через AcoustID.  Обложки подтягиваются из Cover Art Archive.  Для скробблинга подключил ListenBrainz API.  Для мобильного доступа сделал Telegram Mini App на Vue 3 - авторизация через Telegram, плеер, поиск по коллекции.  Работает прямо внутри Telegram.

Результат

Метаданные автоматически подтягиваются для 85% треков.  Каталог - 127 000+ артистов с обложками.  Telegram Mini App закрыл вопрос мобильного доступа - слушаешь музыку прямо из Telegram без отдельного приложения.

164

Похожие кейсы

Миграция платформы на React и NestJS
Переписал ядро o5.Еда с PHP/jQuery на TypeScript/React/NestJS. Модульная архитектура, типизированный API, 500+ бизнес-клиентов без простоя при переходе.
ReactTypeScriptNestJSNode.js
Пайплайн транскодирования аудио
Серверный пайплайн: загрузка FLAC/MP3/OGG, транскодирование в нужные форматы, стриминг через S3. Lossless воспроизведение в браузере с любого устройства.
NuxtTypeScriptS3Node.js
SEO-архитектура для сайтов доставки
Отдельные страницы товаров с Schema.org разметкой, SSR, мета-теги. Клиентские сайты выходят в топ Google по локальным запросам.
NuxtTypeScriptTailwind CSS
Онлайн-оплата без комиссии для ресторанов
Интеграция прямого эквайринга для клиентов SaaS-платформы доставки еды. 0% комиссии на заказы вместо 3-5% у агрегаторов.
NuxtTypeScriptNode.js

Нужно решить похожую задачу?

Напишите - обсудим ваш проект или идею.

© 2026 Николай Косарев