Как мы собрали Similar + Discovery для плеера Kinrox

Создатели открытого Mac-плеера Kinrox начали проект с задачи, не связанной напрямую с рекомендациями. Им хотелось сделать более лёгкий клиент Spotify: официальный плеер потреблял около 2 ГБ оперативной памяти, тогда как Kinrox обходился примерно 196 МБ.
У проекта появились и дополнительные функции для домашнего использования. Плеер умеет запускать фильмы с управлением через пульт на iPhone, а также включать скринсейвер «Матрицы» прямо с дивана. При этом в режиме простоя загрузка процессора, по словам разработчиков, оставалась на уровне 0%.
Однако после нескольких вечеров использования обнаружилась другая проблема — поиск новой музыки. Особенно заметной она становилась при прослушивании треков на стыке psybient, organic electronic и downtempo, когда от рекомендаций ожидаешь похожего настроения, но не повторения уже знакомой библиотеки.
Вместо свежих находок штатные алгоритмы Spotify, как описывают авторы Kinrox, нередко возвращали уже лайкнутые композиции, в том числе добавленные несколько лет назад. В выдаче также появлялись попсовые сборники, которые не соответствовали исходному музыкальному контексту.
От вкладки Music к собственному discovery
Разработчики решили использовать это наблюдение как повод пересмотреть интерфейс собственного плеера. Верхнюю панель Kinrox переименовали, а скромную вкладку Music превратили в отдельный раздел Spotify. В левой колонке появился пункт Similar & discovery — место для поиска музыки, связанной с текущими предпочтениями пользователя.
Главный вопрос проекта сформулировали так: почему встроенный поиск похожих треков перестал давать ощущение открытия и можно ли сделать более понятный механизм рекомендаций самостоятельно. В отличие от непрозрачной выдачи готового сервиса, собственный движок должен позволить разработчикам объяснить, как формируются результаты и почему конкретная композиция оказалась рядом с исходной.
Задача осложняется изменениями в экосистеме Spotify. В 2025–2026 годах компания, как отмечают авторы, ограничила доступ разработчиков к прежним рекомендательным API. Поэтому повторить старый подход напрямую уже нельзя: создателям Kinrox пришлось искать собственную архитектуру для Similar и Discovery, опираясь на возможности плеера и доступные данные.
Так развитие Kinrox перешло от оптимизации потребления памяти к более широкой задаче — созданию прозрачного музыкального поиска. Проект показывает, что даже при удобном доступе к огромному каталогу пользователю может не хватать не самих треков, а понятного способа выйти за пределы уже знакомых рекомендаций.


