

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# MediaTailor parámetros de consulta de manifiesto
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta con distintos fines: los parámetros de consulta del manifiesto para el enrutamiento y la autorización de la CDN y otros parámetros de consulta que se pueden utilizar para funciones específicas del origen.

AWS Elemental MediaTailor conserva los parámetros de consulta desde el inicio de la sesión y los añade al manifiesto personalizado y a otros activos. URLs Utilice esta funcionalidad cuando tenga una red de entrega de contenido (CDN) entre el reproductor cliente MediaTailor y el reproductor.

Usa los parámetros de consulta del manifiesto cuando tu CDN necesite los parámetros de consulta para lo siguiente:
+ Enrutamiento dinámico a diferentes puntos finales MediaTailor 
+ Autorización de token

**Comportamiento del lado del cliente frente al de la CDN**  
MediaTailor agrega parámetros de consulta para los puntos finales de informes del lado del cliente, pero no los agrega para los segmentos de CDN. La funcionalidad actualizada proporciona un soporte más completo para los parámetros de consulta en varios MediaTailor activos, lo que mejora la flexibilidad en los casos de uso de enrutamiento y autorización de la CDN.

MediaTailor agrega parámetros de consulta para los puntos finales de informes del lado del cliente, pero no agrega los parámetros de consulta para los segmentos CloudFront (u otros segmentos de la CDN).

Para utilizar la conservación de parámetros, póngase en contacto con [AWS Support](https://aws.amazon.com/premiumsupport/) para solicitar que se habilite la transferencia de parámetros de consulta del manifiesto. 

El comportamiento varía entre HLS y DASH, y entre la inicialización de sesión explícita e implícita. En los temas siguientes se describe cómo configurar las solicitudes de inicialización de sesión para que MediaTailor pasen los parámetros al manifiesto:

# MediaTailor gestión de parámetros de consulta para los orígenes
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta de forma diferente en función de su finalidad. Los parámetros de consulta del manifiesto (con el prefijo`manifest.`) se utilizan para el enrutamiento y la autorización de la CDN, mientras que otros parámetros de consulta se pueden utilizar para funciones específicas del origen.

**Visualización desplazada en el tiempo con MediaPackage**  
Si desea utilizar la función de visualización en diferido temporal MediaPackage, puede incluir `start` `end` parámetros en sus solicitudes. Estos parámetros definen ventanas de contenido específicas para la visualización inicial y posterior.

**Example solicitud de visualización desplazada en el tiempo**  
Incluye los parámetros de inicio y finalización en tu solicitud de manifiesto para verlos en turnos horarios:  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportamiento de los parámetros durante las sesiones**  
Los parámetros de consulta se procesan en el momento de la inicialización de la sesión. Para la visualización con cambios en el tiempo u otras funciones específicas del origen:
+ **Inicialización de la sesión:** incluye los parámetros necesarios en la solicitud de manifiesto inicial
+ **Persistencia de los parámetros:** los parámetros se asocian a la sesión y se mantienen durante la reproducción
+ **Cambiar los parámetros:** para modificar las ventanas de cambio de hora u otros parámetros, cree una sesión nueva con los valores actualizados

**importante**  
El manejo específico de los parámetros de consulta depende de la configuración de origen y de los parámetros que admita el origen del contenido. Para MediaPackage la integración, asegúrese de que la CDN esté configurada para reenviar los parámetros de consulta necesarios, tal y como se describe en[Configure los parámetros de consulta esenciales](mediapackage-integration.md#mediapackage-query-strings).

# MediaTailor restricciones de caracteres de parámetros y codificación de URL
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor admite caracteres específicos en los parámetros de consulta del manifiesto. Puede utilizar la codificación URL para los caracteres especiales.

**Caracteres compatibles con codificación URL**  
La codificación de URL admite los siguientes caracteres especiales:
+ punto (.) = %2E
+ guión (-) = %2D
+ guión bajo (\$1) = %5F
+ porcentaje (%) = %25
+ tilde (\$1) = %7E
+ barra inclinada (/) = %2F
+ asterisco (\$1) = %2A
+ es igual a (=) = %3D
+ pregunta (?) = %3F

**Soporte de codificación de URL**  
MediaTailor admite el signo de porcentaje (%) cuando se utiliza en la codificación de direcciones URL (por ejemplo, hello%20world = hello world). Puede utilizar cualquier carácter codificado en una URL, siempre que sean codificaciones de URL válidas de acuerdo con la especificación HTTP.

**importante**  
MediaTailor no admite caracteres dobles como%%% o ==.

**Consideraciones de seguridad**  
MediaTailor implementa las siguientes medidas de seguridad para el manejo de parámetros:

1. Limitaciones de tamaño de entrada para evitar que la base de datos se sobrecargue

1. Codificación y desinfección adecuadas de las entradas de los usuarios

1. Codificación URL de la entrada para evitar que la respuesta se dañe

**Topics**
+ [Parámetros de consulta de origen](origin-query-parameters.md)
+ [MediaTailorrestricciones de caracteres](manifest-query-parameters-character-restrictions.md)
+ [MediaTailorSesiones implícitas de HLS](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor Sesiones implícitas de DASH](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor inicialización explícita de la sesión](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailorcomportamiento específico del protocolo](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor Integración de CDN](manifest-query-parameters-cdn-integration.md)

# MediaTailor Inicialización de sesión implícita en HLS
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor incluye los parámetros de consulta en los enlaces a los MediaTailor recursos cuando la solicitud incluye parámetros de consulta con la clave. `manifest.*` El siguiente ejemplo muestra este formato de solicitud:

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

Los enlaces no incluyen el `manifest.` prefijo.

**Aplicación de parámetros en HLS**  
Para las sesiones implícitas de HLS, MediaTailor aplica los parámetros a las siguientes ubicaciones de la jerarquía del manifiesto:
+ Lista de reproducción multivariante URLs
+ Lista de reproducción multimedia URLs
+ Segmento de contenido URLs
+ Segmento de anuncios URLs
+ Inicialización de HLS URLs

**Example lista de reproducción multivariante**  
El siguiente ejemplo muestra cómo se MediaTailor incluyen los parámetros de consulta en la URL de la lista de reproducción multivariante:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/111122223333/originId/session/1.m3u8?test=123",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
#EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2525657,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665212
../../../manifest/111122223333/originId/session/0.m3u8?test=123
```

**Example lista de reproducción multimedia**  
El siguiente ejemplo muestra cómo se MediaTailor incluyen los parámetros de consulta en URLs los segmentos de contenido:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:28716269
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:6.006,
https://origin.com/contentSegment_1.ts?originQueryParam=foo&test=123
#EXT-X-DISCONTINUITY
#EXTINF:6.006,
../../../../segment/111122223333/originId/session/0/2?test=123
```

# MediaTailor Inicialización de sesión implícita de DASH
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor crea una sesión para el cliente y la redirige con parámetros de consulta cuando el cliente realiza una solicitud de manifiesto sin una sesión. El siguiente ejemplo muestra este formato de solicitud:

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor crea una sesión para el cliente y la redirige con los parámetros de consulta:

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**Aplicación de parámetros en DASH**  
La respuesta al manifiesto de DASH incluye los parámetros de consulta en varios lugares, incluidos los segmentos de contenido, los segmentos de anuncios y la inicialización URLs. MediaTailor aplica parámetros a lo siguiente:
+ Elementos de ubicación del manifiesto DASH
+ SegmentTemplate atributos de inicialización
+ SegmentTemplate atributos multimedia
+ segmento de contenido URLs
+ Segmento de anuncios URLs

Cuando el cliente hace la solicitud, MediaTailor responde con un manifiesto de DASH similar al siguiente ejemplo. El primer período es un período de contenido, por lo que MediaTailor no inserta el parámetro de consulta del manifiesto en él. En el segundo período, que es un período publicitario, MediaTailor inserta el parámetro de consulta del manifiesto en el `initialization` atributo y `media` el atributo del `SegmentTemplate` elemento. El `Location` elemento también tiene los parámetros de consulta del manifiesto.

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2018-07-27T09:48:23.634000+00:00" id="201" minBufferTime="PT30S" minimumUpdatePeriod="PT15S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-14T23:37:43" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT56.997S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://origin.com/contentSegments/</BaseURL>
    <Location>https://mediatailor.com/v1/dash/111122223333/originId/index.mpd?test=123&aws.sessionId=session</Location>
    <Period duration="PT29.963S" id="28737823" start="PT143732873.178S">
        <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Representation bandwidth="2200000" codecs="avc1.640029" frameRate="30000/1001" height="540" id="1" width="960">
                <SegmentTemplate initialization="index_video_7_0_init.mp4?m=1611174111" media="index_video_7_0_$Number$.mp4?m=1611174111" presentationTimeOffset="4311986195351" startNumber="28737828" timescale="30000">
                    <SegmentTimeline>
                        <S d="180180" t="4311986911066"/>
                        <S d="3003" t="4311987091246"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="28737829_1" start="PT39925H48M23.141S">
        <BaseURL>https://mediatailor.com/v1/dashsegment/111122223333/originId/session/28737829/28737829_1/</BaseURL>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="2200000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_2_0init.mp4?test=123" media="asset_540_2_0_$Number%09d$.mp4?test=123" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="87087" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Inicialización explícita de sesiones de HLS y DASH
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor incluye los parámetros de consulta `manifestParams` as en la lista de reproducción multivariante y el seguimiento URLs en la respuesta cuando el cliente realiza una solicitud explícita de inicialización de sesión.

**Métodos de inicialización de la sesión**  
Para la inicialización explícita de la sesión, puedes usar POST con el cuerpo de la solicitud o GET con los parámetros de consulta:

1. **POST con cuerpo de solicitud:**

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **GET con parámetros de consulta:**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example solicitud de inicialización de sesión**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example respuesta manifiesta y de seguimiento**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

Las respuestas manifiestas de la sesión tienen características específicas MediaTailor URLs similares a las `manifestParams` de los flujos de trabajo de inicialización de sesión implícitos descritos anteriormente. La diferencia clave es que los parámetros del manifiesto para la inicialización explícita de la sesión no comienzan por. `manifest.`

Los parámetros de consulta del manifiesto son inmutables y solo puedes configurarlos al inicializar la sesión. Si un cliente realiza varias solicitudes de listas de reproducción multivariantes para una sola sesión, MediaTailor no actualiza los parámetros de la consulta del manifiesto después de la primera solicitud.

**Flujo de procesamiento de parámetros**  
Solo puede especificar los parámetros una vez, en el momento de la inicialización. Los alias de configuración se resuelven con los valores reales antes de reenviarlos. Por ejemplo: se `player_params.ad_type=customized` resuelve `ad_type=abc12345` en función de la ConfigurationAliases configuración.

# MediaTailor comportamiento de los parámetros específicos del protocolo
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor gestiona los parámetros de consulta del manifiesto de forma diferente para los protocolos HLS y DASH. Cada tipo de protocolo tiene ubicaciones de aplicación y métodos de procesamiento específicos.

**Comparación del manejo de parámetros entre HLS y DASH**  
En la siguiente tabla, se compara la forma en que se MediaTailor gestionan los parámetros de las consultas de manifiestos en los protocolos HLS y DASH:


| Aspecto | Comportamiento del HLS | Comportamiento DASH | 
| --- | --- | --- | 
| Aplicación de parámetros | Se aplica directamente al manifiesto URLs y al segmento URLs | Se aplica a los elementos, SegmentTemplate atributos y segmentos de ubicación URLs | 
| Jerarquía de manifiestos | Lista de reproducción multivariante → Listas de reproducción multimedia → Segmentos | MPD → Períodos → → Representaciones AdaptationSets  | 
| Inicialización URLs | Se aplica al inicio del HLS cuando está presente URLs  | Se aplica a los atributos de SegmentTemplate inicialización | 
| Gestión de sesiones | Los parámetros se conservan en todas las actualizaciones de la lista | Parámetros incluidos en el elemento de ubicación del MPD para la continuidad de la sesión | 
| Gestión de segmentos de anuncios | Se aplica al segmento de anuncios URLs en las listas de reproducción multimedia | Se aplica a los atributos SegmentTemplate multimedia del período publicitario | 

**Ubicaciones de aplicaciones de parámetros**  
MediaTailor aplica los parámetros de consulta del manifiesto a las siguientes ubicaciones:

## Aplicación de parámetros HLS
<a name="hls-parameter-application"></a>

En el caso de las transmisiones HLS, MediaTailor aplica los parámetros de consulta del manifiesto a:
+ Lista de **reproducción multivariante URLs:** los parámetros se añaden a las referencias de las listas de reproducción multimedia
+ **Lista de reproducción multimedia URLs:** los parámetros se incluyen en el segmento URLs de las listas de reproducción multimedia
+ **Segmento de contenido URLs:** todos los segmentos de contenido incluyen los parámetros de consulta del manifiesto
+ **Segmento de anuncios URLs:** los segmentos de anuncios reciben parámetros para el enrutamiento y la autorización de la CDN
+ **Inicialización de HLS URLs:** los segmentos de inicio incluyen parámetros cuando están presentes en la transmisión
+ **Segmento de Slate URLs:** el contenido de Slate incluye parámetros para un comportamiento coherente de la CDN

**Example Ejemplo de aplicación de parámetros HLS**  
Dada la inicialización de la sesión:  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
La lista de reproducción multivariante incluye parámetros en las referencias de las listas de reproducción multimedia:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
La lista de reproducción multimedia incluye parámetros en el segmento: URLs  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## Aplicación de parámetros DASH
<a name="dash-parameter-application"></a>

En el caso de las transmisiones de DASH, MediaTailor aplica los parámetros de consulta del manifiesto a:
+ **Elementos de ubicación del MPD:** el elemento de ubicación incluye parámetros para las solicitudes de actualización del manifiesto
+ **SegmentTemplate atributos de inicialización:** el segmento de inicio incluye parámetros URLs 
+ **SegmentTemplate atributos multimedia:** las plantillas de URL de los segmentos multimedia incluyen parámetros
+ **Segmento de contenido URLs:** todos los segmentos de contenido generados a partir de plantillas incluyen parámetros
+ **Segmento de anuncios URLs:** los segmentos del período de anuncio incluyen parámetros para la integración de la CDN
+ Redireccionamientos **de informes del lado del servidor: 302 redireccionamientos** a segmentos de anuncios conservan los parámetros

**Example Ejemplo de aplicación de parámetros DASH**  
Dada la inicialización de la sesión:  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
El manifiesto de DASH incluye parámetros en varias ubicaciones:  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Integración de CDN y enrutamiento de parámetros
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor los parámetros de consulta manifiesta permiten escenarios sofisticados de integración de CDN. Puede utilizarlos para el enrutamiento dinámico, la autorización y el equilibrio de carga.

**Casos de uso del enrutamiento de CDN**  
Entre los escenarios de integración de CDN más comunes que se benefician de los parámetros de consulta de manifiestos se incluyen los siguientes:
+ **Enrutamiento geográfico: dirija** las solicitudes a MediaTailor puntos finales específicos de la región en función de la ubicación del espectador
+ **Autorización basada en tokens: pasa los tokens de autorización** a través de la CDN para acceder de forma segura al contenido MediaTailor 
+ **Equilibrio de carga:** distribuya el tráfico entre varios MediaTailor puntos finales mediante la lógica de enrutamiento de la CDN
+ **Pruebas A/B: dirija** diferentes segmentos de usuarios a diferentes configuraciones para realizar las pruebas MediaTailor 
+ **Optimización específica del dispositivo: direccione** las solicitudes en función del tipo o las capacidades del dispositivo

**Preservación de parámetros en todas las capas de CDN**  
MediaTailor garantiza que los parámetros de consulta del manifiesto se conserven en varios tipos de solicitudes y capas de CDN:

1. **Solicitud inicial:** los parámetros se extraen de la solicitud de inicialización de la sesión

1. **Generación del manifiesto:** los parámetros se aplican a todos los elementos relevantes URLs del manifiesto

1. **Solicitudes de segmentos:** los parámetros se incluyen en todos los segmentos URLs para garantizar un comportamiento coherente de la CDN

1. **Inserción de anuncios:** los parámetros se conservan durante la inserción del anuncio y el reemplazo de segmentos

**Example Flujo de autorización de CDN**  
En el siguiente ejemplo, se muestra un flujo de autorización de CDN completo mediante parámetros de consulta de manifiesto:  

1. El cliente solicita el manifiesto con un token de autorización:

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. La CDN reenvía la solicitud a MediaTailor con los siguientes parámetros:

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor genera un manifiesto con los parámetros aplicados a todos: URLs

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. Las solicitudes de segmento posteriores incluyen parámetros para la autorización de la CDN:

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```