Модели Ynison State

Модели Ynison State.

class yandex_music.ynison.models.ynison_state.DeviceType

Тип устройства.

UNSPECIFIED

Не указан.

WEB

Браузер.

ANDROID

Android-телефон/планшет.

IOS

iOS-телефон/планшет.

SMART_SPEAKER

Умная колонка.

WEB_TV

Web-телевизор.

ANDROID_TV

Android-телевизор.

APPLE_TV

Apple-телевизор.

ANDROID_WEAR

Android-часы.

WEB_DESKTOP

Desktop-приложение веба для Windows.

class yandex_music.ynison.models.ynison_state.PlayablePlayableType

Тип проигрываемой сущности.

UNSPECIFIED

Не указан.

TRACK

Обычный трек.

LOCAL_TRACK

Локальный трек с устройства.

INFINITE

Бесконечный поток (радио/нейромузыка).

VIDEO_CLIP

Видеоклип.

class yandex_music.ynison.models.ynison_state.VideoClipInfoRecommendationType

Способ попадания видеоклипа в очередь.

UNSPECIFIED

Не указан.

RECOMMENDED

Видеоклип пришёл из рекомендаций.

ON_DEMAND

Видеоклип явно выбран пользователем.

SEARCH

Видеоклип выбран из поиска.

ARTIST

Видеоклип выбран с экрана артиста.

OWN

Видеоклип выбран в собственной коллекции.

EDITORIAL_CHOICE

Видеоклип пришёл в блоке рекомендаций на странице трендов.

class yandex_music.ynison.models.ynison_state.PlayerQueueEntityType

Тип сущности, от которой порождена очередь (устаревший, см. PlayerQueueQueue).

UNSPECIFIED

Не указан.

ARTIST

Очередь популярных треков артиста.

PLAYLIST

Очередь треков из плейлиста.

ALBUM

Очередь треков альбома.

RADIO

Динамическая очередь радио по seed’у станции.

VARIOUS

Случайный набор треков.

GENERATIVE

Поток нейромузыки.

FM_RADIO

Поток FM-радио.

VIDEO_WAVE

Динамическая очередь видеоклипов.

LOCAL_TRACKS

Очередь локальных треков с устройства.

class yandex_music.ynison.models.ynison_state.PlayerQueueEntityContext

Контекст воспроизведения очереди.

BASED_ON_ENTITY_BY_DEFAULT

Контекст выбран по умолчанию в зависимости от сущности.

USER_TRACKS

Мои треки.

DOWNLOADED_TRACKS

Скачанные треки.

SEARCH

Из поиска.

MUSIC_HISTORY

История прослушивания.

Поиск по истории прослушивания.

ARTIST_MY_COLLECTION

Коллекция артиста у пользователя.

ARTIST_FAMILIAR_FROM_WAVE

Артисты, знакомые по волне.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSourceSourceType

Способ попадания трека в волновую очередь.

ONLINE_BY_DEFAULT

Трек пришёл из онлайн-рекомендаций.

OFFLINE

Трек пришёл из оффлайн-рекомендаций (оффлайн-волна).

class yandex_music.ynison.models.ynison_state.PlayerStateOptionsRepeatMode

Режим повтора воспроизведения.

UNSPECIFIED

Не указан.

NONE

Без повтора.

ONE

Повтор текущего трека.

ALL

Повтор всей очереди.

class yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayablePlayableType

Тип инжектируемой в очередь сущности.

UNSPECIFIED

Не указан.

ALICE_SHOT

Голосовая врезка Алисы.

AD

Рекламный блок.

PREROLL

Преролл.

class yandex_music.ynison.models.ynison_state.PutYnisonStateRequestActivityInterceptionType

Тактика перехвата активности устройством, отправившим сообщение.

DO_NOT_INTERCEPT_BY_DEFAULT

Устройство не пытается перехватить активность.

INTERCEPT_IF_NO_ONE_ACTIVE

Устройство становится активным, если на момент обработки активное устройство отсутствует.

INTERCEPT_EAGER

Устройство получает активность после успешной обработки сообщения.

class yandex_music.ynison.models.ynison_state.Playable

Класс, представляющий проигрываемую сущность.

Может быть треком, видеоклипом и т.п.

playable_id: str

Идентификатор сущности.

album_id_optional: stroptional

Опциональный идентификатор альбома. Используется для составного идентификатора playable при playable_type == TRACK.

playable_type: yandex_music.ynison.models.ynison_state.PlayablePlayableType

Тип сущности.

from_: str

Фром для play-audio.

title: str

Заголовок.

cover_url_optional: stroptional

Опциональная ссылка на обложку. Может содержать плейсхолдер для размера в аватарнице.

video_clip_info: yandex_music.ynison.models.ynison_state.VideoClipInfo

Дополнительная информация о видеоклипе (в oneof с track_info).

track_info: yandex_music.ynison.models.ynison_state.TrackInfo

Дополнительная информация о треке (в oneof с video_clip_info).

navigation_id_optional: stroptional

Хеш для play-audio. Используется для определения хеша навигации пользователя при изменении проигрываемой сущности в очереди.

playback_action_id_optional: stroptional

Уникальный идентификатор действия воспроизведения. Используется для аналитики, чтобы склеить воспроизведение playable с экраном, с которого было сгенерировано поле.

class yandex_music.ynison.models.ynison_state.VideoClipInfo

Класс, представляющий дополнительную информацию о видеоклипе.

recommendation_type: yandex_music.ynison.models.ynison_state.VideoClipInfoRecommendationType

Способ попадания видеоклипа в очередь (для аналитики).

class yandex_music.ynison.models.ynison_state.TrackInfo

Класс, представляющий дополнительную информацию о треке.

track_source_key: int

Ключ источника из [WaveQueue.EntityOptions.track_sources].

batch_id_optional: stroptional

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

class yandex_music.ynison.models.ynison_state.UpdateVersion

Класс, представляющий версию изменений.

device_id: str

Идентификатор устройства, которое инициировало изменение.

version: int

Версия последнего изменения. Случайное значение int64.

timestamp_ms: int

Время последнего изменения, диагностическое значение, не используется в бизнес-логике на клиентах.

class yandex_music.ynison.models.ynison_state.PlayerQueue

Класс, представляющий очередь воспроизведения.

entity_id: str

Идентификатор сущности (альбома/плейлиста/радио и др.). Устаревшее поле; новый клиент должен читать и писать queue.

entity_type: yandex_music.ynison.models.ynison_state.PlayerQueueEntityType

Тип сущности. Устаревшее поле; новый клиент должен использовать queue.

queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueue

Новая иерархическая структура очередей с oneof по типам.

current_playable_index: int

Индекс текущего playable в списке playable_list.

playable_list: list из yandex_music.ynison.models.ynison_state.Playable

Список сущностей в очереди.

options: yandex_music.ynison.models.ynison_state.PlayerStateOptions

Настройки плеера.

version: yandex_music.ynison.models.ynison_state.UpdateVersion

Версия последнего изменения очереди.

shuffle_optional: yandex_music.ynison.models.ynison_state.Shuffle

Настройки шаффла. При выключенном шаффле не приходят.

entity_context: yandex_music.ynison.models.ynison_state.PlayerQueueEntityContext

Контекст воспроизведения. Устаревшее поле; контекст теперь применяется только к сущностям из фонотеки в queue.

from_optional: stroptional

Опциональный фром очереди. Используется, когда фром нельзя достать из playable_list (например, пустая ЕОВ-очередь радио).

initial_entity_optional: yandex_music.ynison.models.ynison_state.PlayerQueueInitialEntity

Изначальный id+type сущности, которой была проинициализирована очередь. Устаревшее поле; источник трека теперь берётся из [WaveQueue.EntityOptions.track_sources].

adding_options_optional: yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptions

Дополнительные параметры. Устаревшее поле; см. queue.

navigation_id_optional: stroptional

Поле обратной совместимости для клиентов без поддержки WaveQueue. Работает как [WaveQueue.navigation_id_optional].

filter_optional: stroptional

Поле обратной совместимости для клиентов без поддержки WaveQueue. Работает как [WaveQueue.EntityOptions.PlaylistId.filter_optional].

playback_action_id_optional: stroptional

Поле обратной совместимости для клиентов без поддержки WaveQueue. Работает как [WaveQueue.playback_action_id_optional].

class yandex_music.ynison.models.ynison_state.PlayerQueueQueue

Класс, представляющий иерархическую структуру очередей.

Каждому виду очередей соответствует один из типов PlayablePlayableType. Каждому playable’у с типом TRACK соответствует сущность из таблицы сущностей (см. PlayerQueueQueueWaveQueueEntityOptions). Очереди не имеют универсального идентификатора: каждая сама решает, что её идентифицирует (см. type).

wave_queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueue

Волновая очередь (в oneof type).

generative_queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueueGenerativeQueue

Очередь нейромузыки (в oneof type).

fm_radio_queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueueFmRadioQueue

Очередь FM-радио (в oneof type).

video_wave_queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueueVideoWaveQueue

Очередь видеоклипов (в oneof type).

local_tracks_queue: yandex_music.ynison.models.ynison_state.PlayerQueueQueueLocalTracksQueue

Очередь локальных треков с устройства (в oneof type).

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueue

Класс, представляющий волновую очередь.

Состоит из PlayablePlayableType.TRACK. Автоматически продлевается, если треки закончились. Поддерживает «Скип», «Лайк/Дизлайк», «Играть следующим», «Добавить в очередь», «Удалить», «Переместить», «Повтор трека».

Может находиться в двух состояниях:

  1. Играли только треки фонотечных сущностей, но ещё не были запрошены рекомендательные треки. В этом состоянии entity_options.wave_entity_optional не задано.

  2. Рекомендательные треки были запрошены. В таблице сущностей появляется единственная уникальная запись PlayerQueueQueueWaveQueueEntityOptionsWaveSession, которую можно использовать как идентификатор очереди.

Очередь состоит из трёх частей: прослушанные треки (в playable_list), добавленные в очередь непрослушанные треки (в playable_list), непрослушанные рекомендованные треки (в recommended_playable_list).

recommended_playable_list: list из yandex_music.ynison.models.ynison_state.Playable

Непрослушанные рекомендованные треки. У таких треков следует передавать batch_id. Список может быть непустым только если заполнено entity_options.wave_entity_optional. Исторический нюанс: в playable_list в конце при наличии лежит один первый рекомендованный трек для отображения обложки следующего трека в плеере.

live_playable_index: int

Индекс последнего прослушанного трека в состоянии «с рекомендательными треками»; индекс потенциального рекомендательного трека в состоянии «без рекомендательных треков». Возможны значения [current_playable_index, playable_list.size) в первом состоянии и playable_list.size во втором. Значение -1 означает пустую очередь.

entity_options: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptions

Параметры сущностей для смешанной трековой очереди.

navigation_id_optional: stroptional

Хеш очереди для аналитики новых фромов, чтобы склеить воспроизведения с полной навигацией пользователя. Генерируется один раз для очереди и восстанавливается при синхронизации с клиентами.

playback_action_id_optional: stroptional

Идентификатор действия воспроизведения, сгенерированный клиентом при запуске очереди. Используется для аналитики, чтобы склеить воспроизведение playable с экраном, с которого было сгенерировано поле.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptions

Класс, представляющий параметры сущностей волновой очереди.

wave_entity_optional: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSession

Идентификатор rotor-сессии, к которой относятся все рекомендованные треки в этой очереди. Если поле задано, очередь бесконечно достраивается из этой сессии; иначе достраиваться не может.

track_sources: list из yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsTrackSourceWithKey

Таблица контекстов/сущностей очереди для оптимизации объёма стейта.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSession

Класс, представляющий rotor-сессию волновой очереди.

session_id: str

Идентификатор rotor-сессии.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsTrackSourceWithKey

Класс, представляющий запись в таблице источников треков с ключом.

key: int

Ключ для доступа к сущности. Должен быть уникальным в рамках таблицы; стабильность не требуется, но в рамках одного стейта должен быть консистентным.

wave_source: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSource

Волновой источник (в oneof track_source).

phonoteka_source: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPhonotekaSource

Фонотечный источник (в oneof track_source).

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSource

Класс, представляющий волновой источник попадания трека в очередь.

Трек в волну попадает в результате ответа рекомендаций. Рекомендации делятся на онлайн- и оффлайн-рекомендации (оффлайн-волна).

source_type: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSourceSourceType

Способ попадания трека в волновую очередь.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPhonotekaSource

Класс, представляющий фонотечный источник попадания трека в очередь.

artist_id: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsArtistId

Идентификатор артиста (в oneof id).

playlist_id: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPlaylistId

Идентификатор плейлиста (в oneof id).

album_id: yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsAlbumId

Идентификатор альбома (в oneof id).

entity_context: yandex_music.ynison.models.ynison_state.PlayerQueueEntityContext

Контекст воспроизведения.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsArtistId

Класс, представляющий идентификатор артиста в фонотечном источнике.

id: str

Идентификатор артиста. Строковый по историческим причинам.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPlaylistId

Класс, представляющий идентификатор плейлиста в фонотечном источнике.

id: str

Идентификатор плейлиста. Строковый из-за процесса отказа от owner:kind.

filter_optional: stroptional

Идентификатор фильтра для плейлиста. Если запущены все треки плейлиста, None; иначе filter_id, откуда были запущены треки.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsAlbumId

Класс, представляющий идентификатор альбома в фонотечном источнике.

id: str

Идентификатор альбома. Строковый по историческим причинам.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueGenerativeQueue

Класс, представляющий поток нейромузыки.

Состоит из одного PlayablePlayableType.INFINITE.

id: str

Идентификатор потока.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueFmRadioQueue

Класс, представляющий поток FM-радио.

Состоит из одного PlayablePlayableType.INFINITE.

id: str

Идентификатор потока.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueVideoWaveQueue

Класс, представляющий рекомендательную очередь видеоклипов.

Состоит из PlayablePlayableType.VIDEO_CLIP.

id: str

Идентификатор очереди. Произвольная строка: например, default, other, search:${clipId}, ${albumId}.

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueLocalTracksQueue

Класс, представляющий очередь локальных треков с устройства.

Состоит из PlayablePlayableType.LOCAL_TRACK. Такую очередь нельзя перенести через Ynison на другое устройство, но можно отобразить простейший пульт. Локальные треки не могут быть перемешаны с обычными треками (PlayablePlayableType.TRACK).

class yandex_music.ynison.models.ynison_state.PlayerQueueInitialEntity

Класс, представляющий изначальную сущность очереди (устаревший).

entity_id: str

Идентификатор сущности.

entity_type: yandex_music.ynison.models.ynison_state.PlayerQueueEntityType

Тип сущности.

class yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptions

Класс, представляющий дополнительные параметры очереди (устаревший).

radio_options: yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptionsRadioOptions

Параметры радио-очереди (в oneof options).

class yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptionsRadioOptions

Класс, представляющий параметры радио-очереди (устаревший).

Для entity_type == RADIO(4). Информация о волновой очереди теперь находится в [WaveQueue.EntityOptions.wave_entity_optional].

session_id: str

Идентификатор rotor-сессии.

class yandex_music.ynison.models.ynison_state.PlayerStateOptions

Класс, представляющий настройки плеера.

repeat_mode: yandex_music.ynison.models.ynison_state.PlayerStateOptionsRepeatMode

Режим повтора.

class yandex_music.ynison.models.ynison_state.Shuffle

Класс, представляющий настройки шаффла.

playable_indices: list из int

Перемешанный список индексов сущностей в очереди.

class yandex_music.ynison.models.ynison_state.Device

Класс, представляющий устройство.

info: yandex_music.ynison.models.ynison_state.DeviceInfo

Информация об устройстве.

volume: float

Громкость. Устаревшее значение, см. volume_info.

capabilities: yandex_music.ynison.models.ynison_state.DeviceCapabilities

Настройки доступности.

session: yandex_music.ynison.models.ynison_state.Session

Информация о сессии; уникальна для каждого отдельно инициализированного подключения.

is_offline: bool

Оффлайн ли устройство (не подключено к Ynison на данный момент).

volume_info: yandex_music.ynison.models.ynison_state.DeviceVolume

Состояние громкости устройства вместе с информацией о последнем изменившем её устройстве.

class yandex_music.ynison.models.ynison_state.DeviceVolume

Класс, представляющий состояние громкости устройства.

volume: float

Громкость в интервале [0.0; 1.0]. Значение тесно связано с [DeviceCapabilities.volume_granularity]; ожидается округление мантиссы до 4 знаков при делении 1.0 на число шагов шкалы.

version: yandex_music.ynison.models.ynison_state.UpdateVersion

Версия последнего изменения громкости устройства.

class yandex_music.ynison.models.ynison_state.DeviceInfo

Класс, представляющий информацию об устройстве.

device_id: str

Идентификатор устройства.

title: str

Название устройства.

type: yandex_music.ynison.models.ynison_state.DeviceType

Тип устройства.

app_name: str

Информация о клиентском приложении подключённого устройства.

app_version: str

Информация о версии клиентского приложения.

class yandex_music.ynison.models.ynison_state.DeviceCapabilities

Класс, представляющий настройки доступности устройства.

can_be_player: bool

Может ли устройство быть активным и проигрывать сущности.

can_be_remote_controller: bool

Может ли устройство быть пультом.

volume_granularity: int

Максимальное количество делений на шкале громкости для управления этим устройством. 0: устройство не поддерживает удалённый контроль громкости; N: поддерживает. Допустимы значения [0, 1000].

class yandex_music.ynison.models.ynison_state.Session

Класс, представляющий сессию подключения устройства.

id: int

Идентификатор сессии. Сервер сгенерирует случайное значение самостоятельно; клиент может заполнить это значение при UpdateFullState, и тогда сервер использует переданное.

class yandex_music.ynison.models.ynison_state.PlayingStatus

Класс, представляющий статус воспроизведения.

progress_ms: int

Прогресс проигрываемой сущности в миллисекундах, в интервале [0; длина]. Для infinite-очередей равен 0.

duration_ms: int

Длительность проигрываемой сущности в миллисекундах. Для infinite-очередей равна 0.

paused: bool

Был ли трек поставлен на паузу.

playback_speed: float

Скорость воспроизведения.

version: yandex_music.ynison.models.ynison_state.UpdateVersion

Версия последнего изменения статуса воспроизведения.

class yandex_music.ynison.models.ynison_state.PlayerQueueInject

Класс, представляющий состояние проигрывания инжектируемой в очередь сущности.

Инжектироваться может шот, преролл и т.п.

playing_status: yandex_music.ynison.models.ynison_state.PlayingStatus

Статус воспроизведения.

playable: yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayable

Дополнительная проигрываемая сущность.

version: yandex_music.ynison.models.ynison_state.UpdateVersion

Версия последнего изменения состояния.

class yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayable

Класс, представляющий инжектируемую в очередь сущность.

playable_id: str

Идентификатор сущности.

playable_type: yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayablePlayableType

Тип сущности.

title: str

Заголовок.

cover_url: stroptional

Опциональная ссылка на обложку. Может содержать плейсхолдер для размера в аватарнице.

class yandex_music.ynison.models.ynison_state.PlayerState

Класс, представляющий состояние плеера.

status: yandex_music.ynison.models.ynison_state.PlayingStatus

Статус воспроизведения.

player_queue: yandex_music.ynison.models.ynison_state.PlayerQueue

Текущая очередь.

player_queue_inject_optional: yandex_music.ynison.models.ynison_state.PlayerQueueInject

Состояние проигрывания инжектируемой в очередь сущности.

class yandex_music.ynison.models.ynison_state.PutYnisonStateRequest

Класс, представляющий запрос на обновление состояния Ynison.

Клиент отправляет на сервер один из параметров в зависимости от произошедшего события.

update_full_state: yandex_music.ynison.models.ynison_state.UpdateFullState

Обновить общее состояние (в oneof parameters).

update_active_device: yandex_music.ynison.models.ynison_state.UpdateActiveDevice

Обновить активное устройство (в oneof parameters).

update_playing_status: yandex_music.ynison.models.ynison_state.UpdatePlayingStatus

Обновить статус воспроизведения (в oneof parameters).

update_player_state: yandex_music.ynison.models.ynison_state.UpdatePlayerState

Обновить состояние плеера (в oneof parameters).

update_volume: yandex_music.ynison.models.ynison_state.UpdateVolume

Обновить громкость (устаревшее, см. update_volume_info).

update_player_queue_inject: yandex_music.ynison.models.ynison_state.UpdatePlayerQueueInject

Обновить состояние проигрывания инжектируемой сущности (в oneof parameters).

update_session_params: yandex_music.ynison.models.ynison_state.UpdateSessionParams

Обновить информацию об устройстве-отправителе (в oneof parameters).

update_volume_info: yandex_music.ynison.models.ynison_state.UpdateVolumeInfo

Обновить громкость (в oneof parameters).

sync_state_from_eov: yandex_music.ynison.models.ynison_state.SyncStateFromEOV

Запросить синхронизацию с сервисом ЕОВ (в oneof parameters).

player_action_timestamp_ms: int

Время последнего изменения в плеере в миллисекундах.

rid: str

Request id. Генерируется клиентом, используется для логирования и отладки.

activity_interception_type: yandex_music.ynison.models.ynison_state.PutYnisonStateRequestActivityInterceptionType

Тактика перехвата активности устройством-отправителем.

class yandex_music.ynison.models.ynison_state.PutYnisonStateResponse

Класс, представляющий ответ сервера на обновление состояния Ynison.

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

player_state: yandex_music.ynison.models.ynison_state.PlayerState

Состояние плеера.

devices: list из yandex_music.ynison.models.ynison_state.Device

Список подключённых устройств.

active_device_id_optional: stroptional

Идентификатор активного устройства.

timestamp_ms: int

Время создания ответа сервера в миллисекундах.

rid: str

Request id. Предположительно тот, который послужил причиной отправки ответа.

class yandex_music.ynison.models.ynison_state.UpdatePlayerQueueInject

Класс, представляющий обновление состояния инжектируемой в очередь сущности.

player_queue_inject: yandex_music.ynison.models.ynison_state.PlayerQueueInject

Состояние инжектируемой сущности.

class yandex_music.ynison.models.ynison_state.UpdateActiveDevice

Класс, представляющий обновление активного устройства.

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

device_id_optional: stroptional

Идентификатор нового активного устройства.

class yandex_music.ynison.models.ynison_state.UpdatePlayingStatus

Класс, представляющий обновление статуса воспроизведения.

Отправляется при старте, паузе, перемотке или изменении скорости воспроизведения.

playing_status: yandex_music.ynison.models.ynison_state.PlayingStatus

Новый статус воспроизведения.

class yandex_music.ynison.models.ynison_state.UpdateVolume

Класс, представляющий обновление уровня громкости (устаревший).

См. UpdateVolumeInfo.

volume: float

Громкость в интервале [0; 1].

device_id: str

Идентификатор устройства, на котором меняется громкость.

class yandex_music.ynison.models.ynison_state.UpdateVolumeInfo

Класс, представляющий обновление громкости устройства.

device_id: str

Идентификатор устройства, на котором меняется громкость.

volume_info: yandex_music.ynison.models.ynison_state.DeviceVolume

Новое значение состояния громкости с версией изменений.

class yandex_music.ynison.models.ynison_state.UpdatePlayerState

Класс, представляющий обновление состояния плеера.

Отправляется при старте новой очереди, её обновлении (добавление/удаление сущности) и изменении режима повтора/шаффла.

player_state: yandex_music.ynison.models.ynison_state.PlayerState

Новое состояние воспроизведения.

class yandex_music.ynison.models.ynison_state.UpdateFullState

Класс, представляющий обновление полного состояния проигрывания и устройств.

Отправляется при холодном старте, выключении оффлайн-режима и появлении сети после её отключения.

player_state: yandex_music.ynison.models.ynison_state.PlayerState

Состояние плеера.

is_currently_active: bool

Является ли устройство активным (играет звук).

device: yandex_music.ynison.models.ynison_state.UpdateDevice

Информация об устройстве.

sync_state_from_eov_optional: yandex_music.ynison.models.ynison_state.SyncStateFromEOV

Запрос синхронизации с сервисом ЕОВ во время обработки UpdateFullState. Если не передан, синхронизация будет вызвана только для сценариев холодного старта.

class yandex_music.ynison.models.ynison_state.UpdateSessionParams

Класс, представляющий обновление поведения сервера в отношении устройства в рамках сессии.

Параметры сбрасываются при переподключении.

mute_events_if_passive: bool

Пока устройство находится в пассивном режиме, оно не будет получать с сервера новые события. Флаг сбрасывается, если текущее устройство становится активным. Если устройство уже активно, флаг игнорируется.

class yandex_music.ynison.models.ynison_state.UpdateDevice

Класс, представляющий информацию об устройстве, передаваемую самим устройством на сервер.

info: yandex_music.ynison.models.ynison_state.DeviceInfo

Информация об устройстве.

volume: float

Громкость. Устаревшее, см. volume_info.

capabilities: yandex_music.ynison.models.ynison_state.DeviceCapabilities

Настройки доступности.

volume_info: yandex_music.ynison.models.ynison_state.DeviceVolume

Громкость устройства.

class yandex_music.ynison.models.ynison_state.SyncStateFromEOV

Класс, представляющий запрос синхронизации с сервисом ЕОВ (единой очереди воспроизведения).

Запрос синхронизации может быть отклонён сервером, если текущее устройство не активно и не получило активности в результате вызова этого метода.

Сценарий обновления:

  1. Бэкенд проверяет активность устройства и делает его активным, если требуется (см. PutYnisonStateRequestActivityInterceptionType).

  2. Если устройство не является активным после шага 1, команда тихо игнорируется.

  3. Бэкенд получает список очередей из ЕОВ.

  4. Если id последней очереди в списке совпадает с actual_queue_id, обновление не произойдёт, переход к пункту 6.

  5. Пробуем обновить стейт на основании ЕОВ. Новое состояние плеера будет содержать [UpdateVersion#device_id], отличный от id устройства-отправителя.

  6. Если стейт был обновлён или сменилось активное устройство, рассылаем эвент всем устройствам. Иначе выходим без событий и ошибок.

actual_queue_id: str

Идентификатор очереди устройства в ЕОВ. Пустая строка: допустимое значение, если клиент не имеет информации о синхронизации очередей.