Модели 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

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

Type:

str

album_id_optional

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

Type:

str, optional

playable_type

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

Type:

yandex_music.ynison.models.ynison_state.PlayablePlayableType

from_

Фром для play-audio.

Type:

str

title

Заголовок.

Type:

str

cover_url_optional

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

Type:

str, optional

video_clip_info

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

Type:

yandex_music.ynison.models.ynison_state.VideoClipInfo

track_info

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

Type:

yandex_music.ynison.models.ynison_state.TrackInfo

navigation_id_optional

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

Type:

str, optional

playback_action_id_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.VideoClipInfo

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

recommendation_type

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

Type:

yandex_music.ynison.models.ynison_state.VideoClipInfoRecommendationType

class yandex_music.ynison.models.ynison_state.TrackInfo

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

track_source_key

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

Type:

int

batch_id_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.UpdateVersion

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

device_id

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

Type:

str

version

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

Type:

int

timestamp_ms

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

Type:

int

class yandex_music.ynison.models.ynison_state.PlayerQueue

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

entity_id

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

Type:

str

entity_type

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueEntityType

queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueue

current_playable_index

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

Type:

int

playable_list

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

Type:

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

options

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

Type:

yandex_music.ynison.models.ynison_state.PlayerStateOptions

version

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVersion

shuffle_optional

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

Type:

yandex_music.ynison.models.ynison_state.Shuffle

entity_context

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueEntityContext

from_optional

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

Type:

str, optional

initial_entity_optional

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueInitialEntity

adding_options_optional

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptions

navigation_id_optional

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

Type:

str, optional

filter_optional

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

Type:

str, optional

playback_action_id_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.PlayerQueueQueue

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

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

wave_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueue

generative_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueGenerativeQueue

fm_radio_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueFmRadioQueue

video_wave_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueVideoWaveQueue

local_tracks_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueLocalTracksQueue

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

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

Type:

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

live_playable_index

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

Type:

int

entity_options

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptions

navigation_id_optional

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

Type:

str, optional

playback_action_id_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptions

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

wave_entity_optional

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSession

track_sources

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

Type:

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

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSession

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

session_id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsTrackSourceWithKey

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

key

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

Type:

int

wave_source

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSource

phonoteka_source

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPhonotekaSource

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSource

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

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

source_type

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsWaveSourceSourceType

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPhonotekaSource

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

artist_id

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsArtistId

playlist_id

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPlaylistId

album_id

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsAlbumId

entity_context

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueEntityContext

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsArtistId

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

id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsPlaylistId

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

id

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

Type:

str

filter_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueWaveQueueEntityOptionsAlbumId

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

id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueGenerativeQueue

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

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

id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueFmRadioQueue

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

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

id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueVideoWaveQueue

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

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

id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerQueueQueueLocalTracksQueue

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

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

class yandex_music.ynison.models.ynison_state.PlayerQueueInitialEntity

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

entity_id

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

Type:

str

entity_type

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueEntityType

class yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptions

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

radio_options

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptionsRadioOptions

class yandex_music.ynison.models.ynison_state.PlayerQueuePlayerQueueOptionsRadioOptions

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

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

session_id

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

Type:

str

class yandex_music.ynison.models.ynison_state.PlayerStateOptions

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

repeat_mode

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

Type:

yandex_music.ynison.models.ynison_state.PlayerStateOptionsRepeatMode

class yandex_music.ynison.models.ynison_state.Shuffle

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

playable_indices

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

Type:

list из int

class yandex_music.ynison.models.ynison_state.Device

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

info

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

Type:

yandex_music.ynison.models.ynison_state.DeviceInfo

volume

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

Type:

float

capabilities

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

Type:

yandex_music.ynison.models.ynison_state.DeviceCapabilities

session

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

Type:

yandex_music.ynison.models.ynison_state.Session

is_offline

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

Type:

bool

volume_info

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

Type:

yandex_music.ynison.models.ynison_state.DeviceVolume

class yandex_music.ynison.models.ynison_state.DeviceVolume

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

volume

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

Type:

float

version

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVersion

class yandex_music.ynison.models.ynison_state.DeviceInfo

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

device_id

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

Type:

str

title

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

Type:

str

type

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

Type:

yandex_music.ynison.models.ynison_state.DeviceType

app_name

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

Type:

str

app_version

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

Type:

str

class yandex_music.ynison.models.ynison_state.DeviceCapabilities

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

can_be_player

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

Type:

bool

can_be_remote_controller

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

Type:

bool

volume_granularity

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

Type:

int

class yandex_music.ynison.models.ynison_state.Session

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

id

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

Type:

int

class yandex_music.ynison.models.ynison_state.PlayingStatus

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

progress_ms

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

Type:

int

duration_ms

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

Type:

int

paused

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

Type:

bool

playback_speed

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

Type:

float

version

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVersion

class yandex_music.ynison.models.ynison_state.PlayerQueueInject

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

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

playing_status

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

Type:

yandex_music.ynison.models.ynison_state.PlayingStatus

playable

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayable

version

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVersion

class yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayable

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

playable_id

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

Type:

str

playable_type

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueInjectPlayablePlayableType

title

Заголовок.

Type:

str

cover_url

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.PlayerState

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

status

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

Type:

yandex_music.ynison.models.ynison_state.PlayingStatus

player_queue

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueue

player_queue_inject_optional

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueInject

class yandex_music.ynison.models.ynison_state.PutYnisonStateRequest

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

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

update_full_state

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

Type:

yandex_music.ynison.models.ynison_state.UpdateFullState

update_active_device

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

Type:

yandex_music.ynison.models.ynison_state.UpdateActiveDevice

update_playing_status

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

Type:

yandex_music.ynison.models.ynison_state.UpdatePlayingStatus

update_player_state

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

Type:

yandex_music.ynison.models.ynison_state.UpdatePlayerState

update_volume

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVolume

update_player_queue_inject

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

Type:

yandex_music.ynison.models.ynison_state.UpdatePlayerQueueInject

update_session_params

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

Type:

yandex_music.ynison.models.ynison_state.UpdateSessionParams

update_volume_info

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

Type:

yandex_music.ynison.models.ynison_state.UpdateVolumeInfo

sync_state_from_eov

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

Type:

yandex_music.ynison.models.ynison_state.SyncStateFromEOV

player_action_timestamp_ms

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

Type:

int

rid

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

Type:

str

activity_interception_type

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

Type:

yandex_music.ynison.models.ynison_state.PutYnisonStateRequestActivityInterceptionType

class yandex_music.ynison.models.ynison_state.PutYnisonStateResponse

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

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

player_state

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

Type:

yandex_music.ynison.models.ynison_state.PlayerState

devices

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

Type:

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

active_device_id_optional

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

Type:

str, optional

timestamp_ms

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

Type:

int

rid

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

Type:

str

class yandex_music.ynison.models.ynison_state.UpdatePlayerQueueInject

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

player_queue_inject

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

Type:

yandex_music.ynison.models.ynison_state.PlayerQueueInject

class yandex_music.ynison.models.ynison_state.UpdateActiveDevice

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

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

device_id_optional

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

Type:

str, optional

class yandex_music.ynison.models.ynison_state.UpdatePlayingStatus

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

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

playing_status

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

Type:

yandex_music.ynison.models.ynison_state.PlayingStatus

class yandex_music.ynison.models.ynison_state.UpdateVolume

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

См. UpdateVolumeInfo.

volume

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

Type:

float

device_id

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

Type:

str

class yandex_music.ynison.models.ynison_state.UpdateVolumeInfo

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

device_id

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

Type:

str

volume_info

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

Type:

yandex_music.ynison.models.ynison_state.DeviceVolume

class yandex_music.ynison.models.ynison_state.UpdatePlayerState

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

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

player_state

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

Type:

yandex_music.ynison.models.ynison_state.PlayerState

class yandex_music.ynison.models.ynison_state.UpdateFullState

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

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

player_state

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

Type:

yandex_music.ynison.models.ynison_state.PlayerState

is_currently_active

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

Type:

bool

device

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

Type:

yandex_music.ynison.models.ynison_state.UpdateDevice

sync_state_from_eov_optional

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

Type:

yandex_music.ynison.models.ynison_state.SyncStateFromEOV

class yandex_music.ynison.models.ynison_state.UpdateSessionParams

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

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

mute_events_if_passive

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

Type:

bool

class yandex_music.ynison.models.ynison_state.UpdateDevice

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

info

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

Type:

yandex_music.ynison.models.ynison_state.DeviceInfo

volume

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

Type:

float

capabilities

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

Type:

yandex_music.ynison.models.ynison_state.DeviceCapabilities

volume_info

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

Type:

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

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

Type:

str