Скачивалка треков и альбомов по ссылке

Задача

Требуется создать программу или сервис, который по предоставленной ссылке на трек или альбом (с зарубежных площадок) автоматически определяет тип контента (трек или альбом), загружает аудиофайлы и сопутствующие данные, упаковывая их в заданную структуру папок.

Функциональные требования

Интеллектуальный анализ ссылки

  • Автоматически определять, является ли ссылка на одиночный трек или на целый альбом.

Загрузка аудио

  • Приоритеты форматов: сначала проверять доступность WAV; если WAV не найден, загружать MP3 (конвертация MP3 в WAV строго запрещена).

Загрузка обложки

  • Форматы: .jpg, .png.
  • Минимальное разрешение: 1400x1400 px.
  • Максимальное разрешение: 6000x6000 px.
  • Требование к DPI: не менее 72 dpi.
  • Максимальный размер файла обложки: 20 МБ.

Метаданные

  • Сохранять следующие данные о релизе: артист, название трека, название альбома, год/дата релиза, номер трека, жанр/лейбл/ISRC (доступные), исходная ссылка, формат скачанного файла.
  • Записывать всю информацию в теги аудиофайла (ID3v2 и т.д.) и обязательно дублировать в отдельный файл info.json.

Cтруктура папок и именование

  • Путь: Артист/Год - Альбом/
  • Имя файла: номер трека - Название.wav/.mp3
  • Примечание: Запрещенные символы ( \ / : * ? " < > | ) должны быть очищены из имен файлов и папок.

Удобство и надежность

  • Прогресс: индикация прогресса загрузки.
  • Обработка ошибок: при ошибке загрузки файла делать до 3 автоматических попыток.
  • Отчет: развернутый итоговый отчет (успех / частично / ошибка).

Примечания

Скачивание производится исключительно с иностранных, поддерживаемых платформ.

Разработка сайта интернет-магазина

Требуется создать полнофункциональный сайт для онлайн-продаж. Обсуждение бюджета и сроков выполнения - в личных сообщениях после ознакомления с заданием.