Skip to content

piligrimdev/suggestIO

Repository files navigation

SuggestIO - подборка музыки на основе целого плейлиста

Сервис позволяет на основе Spotify плейлиста подобрать песни, близки по всем музыкальным параметрам. Предлагает более редкие и неожиданные варианты, чем радио по плейлисту или треку в самом Spotify.

Как установить ?

В данный момент хостинг сервиса на российский серверах не позволит пользоваться API сервиса Spotify, поэтому необходим VPN там, где он будет хоститься.

Для развертывания необходимо:

  • Установить Docker: https://docs.docker.com/engine/install/ubuntu/
  • Клонировать репозиторий на машину: git clone -b master https://github.com/piligrimdev/suggestIO.git
  • В корневой папке проекта создать .env файл по шаблону файла .env_template, заполнить своими значениями
  • С помощью docker compose up -d поднять сервис.

Как работает ?

Сервис группирует треки в предложенном плейлисте по артистам, которые близки по духу. Для этого он запрашивает похожих исполнителей для каждого уникального исполнителя в плейлисте и сравнивает множества предложенных. Исполнители с похожими множествами по коэффициенту Жаккара считаются близкими. После для каждой группы треков он находит средние значения их музыкальных параметров, и запрашивает у Spotify треки с параметрами близкими к ним.

Стек

  • Python 3.12 + Django
  • Requests для работы с API
  • Redis для кеширования токенов для пользовательских запросов
  • PostgreSQL в качестве БД.
  • Poetry для контроля зависимостей
  • Docker для развертывания
  • Nginx и GUnicorn как сервера.

About

Django app for spotify music suggestions.

Resources

Stars

Watchers

Forks

Contributors