Skip to content

Referencia de control parts ​

Parte de SABR en el extractor. El servidor puede insertar partes de control entre las partes de medios. SabrResponseDecoder reconoce sus ids numéricos y conserva los campos que necesita YoutubeSabrSession o un resumen estructural limitado. El código actual no define una clase Java para cada parte.

Ritmo y protección ​

NEXT_REQUEST_POLICY — id 35 ​

El decodificador conserva la policy bruta y lee su campo 4 como backoff en milisegundos. YoutubeSabrSession también lee el campo 7 como cookie de reproducción. Un backoff mayor de 30 000 ms se rechaza; un retraso válido aplaza la siguiente llamada requestOnce sin enviar HTTP.

STREAM_PROTECTION_STATUS — id 58 ​

#Campo
1estado de protección bruto
2máximo de reintentos indicado por el servidor

El estado se conserva deliberadamente como entero. El estado 2 se expone como atestación pendiente y el 3 como atestación requerida. El llamador puede fijar un PO token ligado al contenido con YoutubeSabrSession.setPoToken(...).

SABR_REDIRECT — id 43 ​

El campo 1 es la URL de streaming sustituta. La sesión solo acepta URLs HTTPS en googlevideo.com o sus subdominios y limita las redirecciones a tres por sesión.

SABR_SEEK — id 45 ​

La parte se conserva como resumen estructural. El extractor actual no aplica por sí mismo un seek iniciado por el servidor; la aplicación decide cómo reconstruir un YoutubeSabrRequest.

RELOAD_PLAYER_RESPONSE — id 46 ​

El decodificador activa reloadRequested. YoutubeSabrSession lo entrega como error de protocolo; obtener una nueva respuesta del player y crear un nuevo YoutubeSabrInfo es una recuperación de la aplicación.

PLAYBACK_START_POLICY — id 47 ​

Se conserva como resumen estructural y no cambia directamente el resultado de requestOnce en el extractor.

Contextos y metadatos de directo ​

SABR_CONTEXT_UPDATE — id 57 ​

La sesión analiza los campos necesarios:

#Campo
1tipo de contexto
3bytes del valor opaco
4enviar por defecto
5política de escritura

Los valores se guardan por tipo. SABR_CONTEXT_SENDING_POLICY (id 59) añade, retira o descarta tipos mediante los campos 1, 2 y 3; los valores activos se repiten en mensajes streamerContext posteriores.

LIVE_METADATA — id 31 ​

La sesión consume actualmente:

#Significado
3secuencia del live edge
4tiempo del live edge en milisegundos
8indicador DVR post-live

Recibir esta parte marca la sesión como directo. Los valores se consultan con isLive(), getLiveHeadSequenceNumber(), getLiveHeadTimeMs() y isPostLiveDvr().

Controles de formatos y medios ​

  • FORMAT_INITIALIZATION_METADATA (id 42) se decodifica en SabrFormatInitializationMetadata y proporciona rangos de inicialización e índice;
  • MEDIA_HEADER, MEDIA y MEDIA_END (ids 20–22) los ensambla SabrMediaSegmentCollector, como se explica en Medios, segmentos e índice;
  • FORMAT_SELECTION_CONFIG (37), SELECTABLE_FORMATS (51), partes onesie (10–12), controles de petición (52–56), pistas de cache/ancho de banda (48–50, 60–66) y SNACKBAR_MESSAGE (67) se resumen para diagnóstico.

SABR_ERROR — id 44 ​

Los campos 1 (tipo de texto) y 2 (código numérico) aparecen en el resumen de respuesta y hacen que la sesión lance un error de protocolo.

Las partes desconocidas o malformadas se conservan como diagnóstico limitado, para que los medios válidos de la misma respuesta sigan las comprobaciones de integridad.

Volver a la vista general.

Creado por Priveetee para el proyecto de código abierto PipePipe