Яндекс Музыка — это не одна программа, а целый комплекс систем: серверный бэкенд, мобильные приложения, веб-версия, десктопный клиент и рекомендательный движок, и каждый из этих компонентов написан на своём языке. Точный внутренний стек компания полностью не раскрывает, однако по публичным выступлениям разработчиков Яндекса, вакансиям и открытым репозиториям можно составить достаточно достоверную картину технологий, на которых работает сервис.
Ниже разберём каждый уровень архитектуры отдельно: чем занимается бэкенд, как устроены клиенты под 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, но применение этого в Музыке публично не подтверждено.
Веб-версия и десктопное приложение
Сайт 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 | Средняя |
| Рекомендации и ML | Python, CatBoost, нейросетевые фреймворки | Средняя |
⚠️ Внимание: Яндекс не публикует полный официальный стек Музыки. Если вы встречаете в сети «точный список всех технологий сервиса» без ссылок на источники — это почти наверняка вымысел или устаревшие данные.
Инфраструктура и хранение музыки
Стриминг миллионов треков требует распределённой инфраструктуры. Контент доставляется через CDN — сеть серверов, которые кэшируют аудиофайлы ближе к пользователю, чтобы сократить задержку при старте воспроизведения. У Яндекса есть собственная облачная платформа Yandex Cloud, однако какая часть Музыки развёрнута в ней, а какая — на выделенных мощностях, публично не уточняется.
Для сжатия аудио в индустрии стриминга стандартно применяются кодеки AAC и Opus, а также форматы высокого качества для подписок с lossless-звуком. Конкретный набор кодеков и битрейтов Музыки может меняться, актуальные параметры стоит смотреть в официальной справке сервиса.
☑️ Как самостоятельно изучить технологии веб-сервиса
Как проверить информацию самостоятельно
Если вам нужны не предположения, а проверяемые факты, опирайтесь на первоисточники. Самые надёжные из них — техноблоги и доклады Яндекса, где инженеры рассказывают о реальных решениях, а также вакансии: в требованиях к кандидатам всегда перечислены реально используемые языки и фреймворки.
Дополнительный источник — open-source активность компании. Яндекс публикует часть своих разработок (CatBoost, YDB, ClickHouse и другие) в открытом доступе, и по ним можно судить об общем технологическом направлении экосистемы.
⚠️ Внимание: декомпиляция мобильных приложений и анализ их трафика могут нарушать условия использования сервиса. Для изучения технологий ограничьтесь публичными источниками и инструментами разработчика в браузере.
Часто задаваемые вопросы
Написана ли Яндекс Музыка полностью на одном языке?
Нет. Это распределённая система из множества компонентов: серверная часть, мобильные клиенты, веб-интерфейс и ML-модули используют разные языки — C++, Python, Kotlin, Swift, TypeScript и другие.
На чём написано Android-приложение Яндекс Музыки?
Судя по публичным докладам разработчиков и вакансиям, основой Android-клиента является Kotlin. В старых модулях могут оставаться участки на Java — это типично для приложений с многолетней историей.
Использует ли Яндекс Музыка нейросети для рекомендаций?
Да, персональные подборки вроде «Плейлиста дня» и «Моей волны» строятся на алгоритмах машинного обучения. Яндекс развивает собственные ML-технологии, включая открытую библиотеку CatBoost, но детали конкретных моделей не раскрываются.
Можно ли узнать технологии веб-версии самостоятельно?
Частично да. Откройте инструменты разработчика в браузере (F12), изучите вкладку Network, подключаемые скрипты и заголовки ответов — это открытая техническая информация, доступная любому пользователю.
Где найти официальную информацию о стеке Яндекса?
Обратите внимание на техноблоги компании, записи докладов с профильных конференций, открытые репозитории Яндекса на GitHub и описания вакансий — именно там приводятся реально используемые технологии.