chatterxton@dev:~$ ru Русскийen English
← cd ~/работы// кейс 01/01

MrakRecords

Независимый музыкальный лейбл: приём релизов, кабинет, доставка на стриминги

сводка

статус
в проде

задача

Лейбл издаёт музыку, а не забирает права: они остаются у автора. Из этого следует всё остальное — артист должен видеть, что происходит с его релизом, и понимать, почему принято то или иное решение.

Узкое место здесь не в дистрибуции, а в метаданных. Площадки чаще всего разворачивают релиз именно на них — на неверном ISRC, на не разложенных по ролям авторах, на территориях, — и узнаёшь об этом примерно через неделю после отправки. Столько же занимает нормальная доставка, поэтому цена одной ошибки в метаданных — не минуты, а вторая неделя.

Отсюда две вещи, вокруг которых собран продукт. Метаданные заполняет лейбл, а не артист: это скучная работа, но её нельзя перекладывать на того, кто делает её раз в год. И проверка аудио — формат, частота, разрядность — происходит при загрузке, до отправки куда-либо, чтобы брак всплывал в тот момент, когда его ещё дёшево исправить.

Передача дистрибьютору тоже сделана программно, а не письмами: релиз уходит через Partner API, состояние поставки прилетает вебхуками, каталог периодически сверяется, а метаданные уже выпущенного релиза можно поправить тем же путём. Ровно поэтому статус в кабинете отражает реальность, а не то, что кто-то последним вписал руками.

Остальное — про ожидание. Релиз идёт неделю, и всю неделю артисту нужно знать, на каком он этапе. Поэтому в кабинете видно состояние каждого релиза и вся история решений по нему, а смена статуса приходит в Telegram, а не ждёт, пока человек сам зайдёт и проверит.

решение

  1. 01Две стороны

    Кабинет артиста — релизы, их состояния и история решений. Бэк-офис лейбла — разбор заявок, метаданные, участники и операции с дистрибьютором. Вход через Telegram, двухфакторка на TOTP, журнал аудита

  2. 02Проверка мастера до отправки

    WAV и FLAC, 44.1 и 48 кГц, 16 и 24 бита — формат разбирается при загрузке, до того как файл куда-то уйдёт. Мастера лежат в отдельном бакете объектного хранилища

  3. 03Передача дистрибьютору

    Интеграция с Partner API: загрузка файлов, отправка релиза, вебхуки о состоянии поставки, сверка каталога и обновление метаданных уже выпущенного

  4. 04Очередь задач и уведомления

    Долгие операции идут через пул воркеров с повторами и выдержкой, а смена состояния релиза уходит артисту в Telegram

экраны

  • кабинет: каталог релизов и разделы лейбла
  • подготовка релиза: метаданные, обложка, авторы по ролям
  • состояние поставки у дистрибьютора

стек

  • / Go
  • / Next.js
  • / TypeScript
  • / PostgreSQL
  • / MinIO
  • / Telegram Bot API
  • / Docker

дальше

@Chatterxton
discord.gg/chatterxtondev онлайн

© 2026 chatterxton