Все кейсы

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

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

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

Задача

Когда пользователь загружает музыку в Мелотеку, он ожидает увидеть обложку альбома, имя артиста, год выпуска, жанр и список треков - как в Spotify или Apple Music. Но MP3-файлы часто приходят с пустыми или некорректными ID3-тегами: "Track 01", "Unknown Artist", обложка отсутствует. Заставлять пользователя вручную заполнять метаданные для каждого из 500 треков в коллекции - невозможно. Кроме того, пользователи просили мобильный доступ к библиотеке, но разрабатывать нативное приложение для iOS и Android было нереально по бюджету. Также нужен был скробблинг - логирование прослушиваний для ведения статистики и рекомендаций.

Решение

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

Результат

Автоматическое распознавание метаданных работает для 85% загружаемых треков без участия пользователя. Каталог содержит 127 000+ артистов с обложками и биографиями. Скробблинг в ListenBrainz позволяет пользователям вести историю прослушиваний и делиться статистикой. Telegram Mini App обеспечивает полноценный мобильный доступ к библиотеке - пользователи управляют коллекцией, слушают музыку и ищут треки прямо из Telegram, без необходимости открывать браузер или ставить приложение.

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

Миграция платформы на 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 Николай Косарев