На чём написана Яндекс Музыка: стек технологий сервиса

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

Ниже разберём каждый уровень архитектуры отдельно: чем занимается бэкенд, как устроены клиенты под Android и iOS, на чём сделан сайт music.yandex.ru и какие технологии отвечают за персональные рекомендации вроде «Плейлиста дня».

Бэкенд: серверная часть сервиса

Серверная инфраструктура Яндекса исторически строится вокруг нескольких основных языков. Во всей экосистеме компании активно используются C++ и Python, и Музыка не исключение: высоконагруженные компоненты, где критична скорость отдачи контента, традиционно пишут на C++, а бизнес-логику, внутренние сервисы и инструменты — на Python.

Также в вакансиях Яндекса для смежных медиа-сервисов регулярно встречается упоминание Java и Go. Go в компании применяют для сетевых сервисов и микросервисной инфраструктуры, где важны конкурентность и малые задержки. Точное распределение языков по конкретным микросервисам Музыки публично не документировано, поэтому любые «точные» списки из интернета стоит воспринимать как догадки.

Для хранения данных в экосистеме Яндекса используются собственные разработки, среди которых публично известна YDB (Yandex Database) — распределённая СУБД с открытым исходным кодом, а также широко распространённые решения вроде PostgreSQL, ClickHouse (тоже разработка Яндекса, изначально созданная для аналитики) и систем кэширования.

Мобильные приложения: Android и iOS

Клиент под Android в Яндексе разрабатывают преимущественно на Kotlin — это официально рекомендуемый Google язык для платформы. В кодовой базе, вероятно, остаются участки на Java, поскольку приложение существует много лет и переписывание легаси-кода идёт постепенно. Разработчики Яндекса неоднократно выступали на конференциях с докладами об Android-разработке, где упоминался именно Kotlin-стек.

Приложение для iOS пишется на Swift, который вытеснил Objective-C в качестве основного языка Apple-разработки. Как и в случае с Android, в старых модулях могут сохраняться компоненты на Objective-C — это нормальная практика для проектов с длинной историей.

  • 📱 Android-клиент — преимущественно Kotlin, возможны участки на Java;
  • 🍏 iOS-клиент — преимущественно Swift, возможны модули на Objective-C;
  • 🎧 Аудиодвижок — низкоуровневая обработка звука и буферизация, вероятно, реализованы с использованием нативных библиотек платформ;
  • 🔄 Общая логика — часть кроссплатформенного кода в индустрии пишут на C++ или Kotlin Multiplatform, но применение этого в Музыке публично не подтверждено.
📊 Каким клиентом Яндекс Музыки вы пользуетесь чаще всего?
Android-приложение
iOS-приложение
Веб-версия в браузере
Десктопное приложение

Веб-версия и десктопное приложение

Сайт music.yandex.ru — это одностраничное приложение (SPA), работающее на JavaScript-стеке. Яндекс исторически развивал собственные фронтенд-технологии, а в последние годы в компании широко используется React в связке с TypeScript. По открытым источникам и докладам разработчиков можно предполагать, что веб-клиент Музыки построен именно на этой связке, однако точный состав фреймворков компания официально не публикует.

Десктопное приложение Музыки для Windows и macOS, судя по его поведению и распространённой практике индустрии, с высокой вероятностью построено на базе Electron или аналогичной технологии обёртки веб-клиента — так делают Spotify, Discord и многие другие сервисы. Десктопный клиент по сути переиспользует код веб-версии, что позволяет команде поддерживать единую кодовую базу интерфейса.

Рекомендации и машинное обучение

За «Плейлист дня», «Мою волну» и подбор похожих треков отвечают системы машинного обучения. Яндекс — автор открытой библиотеки градиентного бустинга CatBoost, которая применяется в разных сервисах компании, и разумно предположить её использование в рекомендательных задачах Музыки наряду с нейросетевыми моделями.

ML-инфраструктура в индустрии строится в основном на Python с библиотеками вроде PyTorch или TensorFlow, а обучение моделей происходит на кластерах с GPU. Какие именно фреймворки используются в Музыке для конкретных моделей, публично не раскрывается — это конкурентная информация.

Что такое CatBoost и при чём тут Яндекс

CatBoost — открытая библиотека градиентного бустинга, разработанная Яндексом и опубликованная в 2017 году. Она хорошо работает с категориальными признаками (жанр, исполнитель, страна) без сложной предобработки, что делает её удобной для рекомендательных систем вроде музыкальных.

Сводная таблица технологий

Соберём всё сказанное в одну таблицу. Учтите: часть данных основана на публичных выступлениях и вакансиях, а не на официальном описании стека.

КомпонентЯзыки / технологииСтепень достоверности
БэкендC++, Python, вероятно Go и JavaВысокая для C++/Python
Android-приложениеKotlin, частично JavaВысокая
iOS-приложениеSwift, частично Objective-CВысокая
Веб-версияTypeScript/JavaScript, вероятно ReactСредняя
Рекомендации и MLPython, CatBoost, нейросетевые фреймворкиСредняя

⚠️ Внимание: Яндекс не публикует полный официальный стек Музыки. Если вы встречаете в сети «точный список всех технологий сервиса» без ссылок на источники — это почти наверняка вымысел или устаревшие данные.

Инфраструктура и хранение музыки

Стриминг миллионов треков требует распределённой инфраструктуры. Контент доставляется через CDN — сеть серверов, которые кэшируют аудиофайлы ближе к пользователю, чтобы сократить задержку при старте воспроизведения. У Яндекса есть собственная облачная платформа Yandex Cloud, однако какая часть Музыки развёрнута в ней, а какая — на выделенных мощностях, публично не уточняется.

Для сжатия аудио в индустрии стриминга стандартно применяются кодеки AAC и Opus, а также форматы высокого качества для подписок с lossless-звуком. Конкретный набор кодеков и битрейтов Музыки может меняться, актуальные параметры стоит смотреть в официальной справке сервиса.

☑️ Как самостоятельно изучить технологии веб-сервиса

Выполнено: 0 / 5

Как проверить информацию самостоятельно

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

Дополнительный источник — open-source активность компании. Яндекс публикует часть своих разработок (CatBoost, YDB, ClickHouse и другие) в открытом доступе, и по ним можно судить об общем технологическом направлении экосистемы.

⚠️ Внимание: декомпиляция мобильных приложений и анализ их трафика могут нарушать условия использования сервиса. Для изучения технологий ограничьтесь публичными источниками и инструментами разработчика в браузере.

Часто задаваемые вопросы

Написана ли Яндекс Музыка полностью на одном языке?

Нет. Это распределённая система из множества компонентов: серверная часть, мобильные клиенты, веб-интерфейс и ML-модули используют разные языки — C++, Python, Kotlin, Swift, TypeScript и другие.

На чём написано Android-приложение Яндекс Музыки?

Судя по публичным докладам разработчиков и вакансиям, основой Android-клиента является Kotlin. В старых модулях могут оставаться участки на Java — это типично для приложений с многолетней историей.

Использует ли Яндекс Музыка нейросети для рекомендаций?

Да, персональные подборки вроде «Плейлиста дня» и «Моей волны» строятся на алгоритмах машинного обучения. Яндекс развивает собственные ML-технологии, включая открытую библиотеку CatBoost, но детали конкретных моделей не раскрываются.

Можно ли узнать технологии веб-версии самостоятельно?

Частично да. Откройте инструменты разработчика в браузере (F12), изучите вкладку Network, подключаемые скрипты и заголовки ответов — это открытая техническая информация, доступная любому пользователю.

Где найти официальную информацию о стеке Яндекса?

Обратите внимание на техноблоги компании, записи докладов с профильных конференций, открытые репозитории Яндекса на GitHub и описания вакансий — именно там приводятся реально используемые технологии.