Разработка функциональности для работы с MP3 файлами в NestJS

Необходимо разработать функциональность для приложения на NestJS, которая будет включать следующие этапы:

  1. Загрузка MP3 файлов:
    • Реализовать раздел для загрузки архивов в формате ZIP, содержащих MP3 файлы, либо загрузку нескольких отдельных MP3 файлов.
    • Ограничить загрузку только форматом ZIP и MP3.
  2. Обработка MP3 файлов:
    • Разработать логику для разбивки каждого MP3 файла на семплы.
  3. Интеграция с API для распознавания музыки:
    • Проанализировать существующие API для распознавания музыки, такие как платные версии Shazam, и интегрировать подходящее решение.
    • Настроить получение данных по каждому MP3 файлу, включая информацию об исполнителях, альбомах, названиях треков и идентификаторах, если таковые предоставляются.
  4. Сохранение данных в базу данных:
    • Для каждого MP3 файла сохранить в базу данных следующую информацию:
      • Исполнитель(и)
      • Альбом
      • Название трека
      • Идентификатор, если он доступен
    • Исключить дублирующие записи.
  5. Логирование процесса:
    • Добавить систему логирования прогресса обработки задач, например, отображение прогресса в формате "1/10 сделано".
    • Логировать ошибки, возникающие при взаимодействии с внешними сервисами.

Требования к стеку:

  • Node.js: NestJS
  • База данных: MySQL
  • ORM: Sequelize или TypeORM

Ожидаемый результат:

Предоставить работающий модуль, который:
  • Корректно принимает и обрабатывает загрузку файлов.
  • Успешно интегрируется с выбранным API для распознавания музыки.
  • Корректно сохраняет и логирует данные в базе данных.
  • Логирует процесс выполнения задачи и возможные ошибки.

Читайте на 123ru.net