Insertar anuncios en las emisiones en directo
En esta página se muestra cómo insertar anuncios en una emisión en directo mediante la API Video Stitcher y curl
, PowerShell o las bibliotecas de cliente.
Antes de empezar
Antes de llamar a la API Video Stitcher, sigue estos pasos:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Video Stitcher API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable videostitcher.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/videostitcher.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Video Stitcher API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable videostitcher.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/videostitcher.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
- Para esta guía de inicio rápido, necesitas un archivo de manifiesto MPEG-DASH o HTTP Live Streaming (HLS). Para crear una, sigue una de las guías de inicio rápido de la API Live Stream hasta la sección Reproducir la emisión en directo generada.
- También puedes usar una red de distribución de contenido (CDN) con esta guía de inicio rápido. Si no ha configurado una CDN, siga los pasos que se indican en la guía de inicio rápido de Media CDN con las siguientes modificaciones:
- Sube archivos de manifiesto MPEG-DASH o HLS y segmentos multimedia al segmento de Cloud Storage.
- No es necesario que tu segmento de Cloud Storage sea de lectura pública.
- Puedes usar URLs firmadas o sin firmar.
PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación en la que crear tu clave de CDN. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: identificador definido por el usuario de la clave de CDN, que se convertirá en el componente final del nombre de recurso de la clave de CDN. Este ID solo puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, el último carácter debe ser una letra o un número, y el ID completo puede tener un máximo de 63 caracteres.HOSTNAME
: el nombre de host de la CDN que se va a asociar a esta clave de CDN (por ejemplo, una dirección IP como35.190.60.252
o un nombre de dominio comocdn.example.com
).MEDIA_CDN_KEYNAME
: el nombre del conjunto de claves de la clave de Media CDNMEDIA_CDN_PRIVATE_KEY
: la clave privada Ed25519 de 64 bytes como cadena codificada en base64. Para obtener más información, consulta Crear una clave privada para Media CDN.PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación en la que crear tu clave de CDN. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: identificador definido por el usuario de la clave de CDN, que se convertirá en el componente final del nombre de recurso de la clave de CDN. Este ID solo puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, el último carácter debe ser una letra o un número, y el ID completo puede tener un máximo de 63 caracteres.HOSTNAME
: el nombre de host de la CDN que se va a asociar a esta clave de CDN (por ejemplo, una dirección IP como35.190.60.252
o un nombre de dominio comocdn.example.com
).GCDN_KEYNAME
: el nombre de la clave de Cloud CDNGCDN_PRIVATE_KEY
: la cadena codificada en base64 secreta de la clave de Cloud CDNPROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación en la que crear tu clave de CDN. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: identificador definido por el usuario de la clave de CDN, que se convertirá en el componente final del nombre de recurso de la clave de CDN. Este ID solo puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, el último carácter debe ser una letra o un número, y el ID completo puede tener un máximo de 63 caracteres.HOSTNAME
: el nombre de host de la CDN que se va a asociar a esta clave de CDN (por ejemplo, una dirección IP como35.190.60.252
o un nombre de dominio comocdn.example.com
).AKAMAI_TOKEN_KEY
: la cadena codificada en base64 clave de token de la configuración perimetral de la CDN de AkamaiPROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de los datos. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
OPERATION_ID
: el identificador de la operaciónPROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación en la que quieres crear tu pizarra. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
SLATE_ID
: identificador definido por el usuario de la pizarra. Este ID solo puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, el último carácter debe ser una letra o un número, y el ID completo puede tener un máximo de 63 caracteres.SLATE_URL
: el URI público de un vídeo MP4 con al menos una pista de audio (vídeo de ejemplo)PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de los datos. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
OPERATION_ID
: el identificador de la operaciónPROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación en la que crear la configuración activa. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: identificador definido por el usuario de la configuración activa. Este ID solo puede contener letras minúsculas, números y guiones. El primer carácter debe ser una letra, el último carácter debe ser una letra o un número, y el ID completo puede tener un máximo de 63 caracteres.SOURCE_LIVESTREAM_URI
: el URI del manifiesto de la emisión en directo. Usa un URI público o un URI sin firmar para el que hayas registrado una clave de CDN. el URI público de la etiqueta de anuncio predeterminada. Si no tienes ninguno, puedes usar un ejemplo de lineal único insertado.AD_TAG_URI
SLATE_ID
: el ID de la pizarra que se debe usar si no hay anuncios insertados.PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de la configuración activa. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: identificador definido por el usuario de la configuración activa.PROJECT_NUMBER
: el número de tu proyecto Google Cloud , que se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesosLOCATION
: la ubicación en la que quieres crear tu sesión. Elige una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: identificador definido por el usuario de la configuración activa.- Vaya a Shaka Player, un reproductor multimedia online.
- En la barra de navegación superior, haga clic en Contenido personalizado.
- Haz clic en el botón +.
Pega el valor del campo
playUri
(PLAY_URI) en el cuadro URL del archivo de manifiesto.Escribe un nombre en el cuadro Nombre.
Haz clic en Guardar.
Haz clic en Reproducir.
PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de la configuración activa. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
LIVE_CONFIG_ID
: identificador definido por el usuario de la configuración activa.PROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de tu pizarra. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
SLATE_ID
: identificador definido por el usuario de la pizarraPROJECT_NUMBER
: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google CloudLOCATION
: la ubicación de tu clave de CDN. Usa una de las regiones admitidas.Mostrar ubicacionesus-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: identificador definido por el usuario para la clave de la CDN.-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
Crear una clave de CDN
La API Video Stitcher puede obtener vídeos de una red de distribución de contenido (CDN). Si el recurso de vídeo está protegido mediante la firma de URLs, debe registrarse una clave de CDN en la API Video Stitcher.
Para registrar la clave de CDN, usa el método projects.locations.cdnKeys.create
.
REST (Media CDN)
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
OPERATION_ID
,
que es la última parte del campo name
, para usarlo en la siguiente sección.
REST (Cloud CDN)
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
OPERATION_ID
,
que es la última parte del campo name
, para usarlo en la siguiente sección.
REST (CDN de Akamai)
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
OPERATION_ID
,
que es la última parte del campo name
, para usarlo en la siguiente sección.
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Comprobar el resultado
Para comprobar si se ha creado la clave de CDN, usa el método projects.locations.operations.get
. Si la respuesta contiene "done: false"
, repite el comando hasta que la respuesta contenga "done: true"
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.CdnKey", "name": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "hostname": "HOSTNAME", "mediaCdnKey": { "keyName": "MEDIA_CDN_KEYNAME" } } }
Crear una cartela
La API Video Stitcher inserta un vídeo de cartela predeterminado cuando no se pueden insertar anuncios. Debes registrar el vídeo de la cartela con la API Video Stitcher para indicar la cartela que se usará cuando no haya anuncios. El vídeo de pizarra puede ser cualquier archivo MP4 que tenga al menos una pista de audio.
Para crear una pizarra, usa el método projects.locations.slates.create
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
OPERATION_ID
,
que es la última parte del campo name
, para usarlo en la siguiente sección.
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Comprobar el resultado
Para comprobar si se ha creado la pizarra, usa el método projects.locations.operations.get
. Si la respuesta contiene "done: false"
, repite el comando hasta que la respuesta contenga "done: true"
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.Slate", "name": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID", "uri": "SLATE_URL" } }
Crea la configuración de la emisión en directo
Antes de crear una sesión en directo, debes crear una configuración para ella. Muchas sesiones en directo pueden compartir la misma configuración.
Para crear la configuración, usa el método projects.locations.liveConfigs.create
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Obtener la configuración
Para obtener la configuración, utiliza el método projects.locations.liveConfigs.get
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", "sourceUri": "SOURCE_LIVESTREAM_URI", "adTagUri": "AD_TAG_URI", "state": "READY", "adTracking": "SERVER", "defaultSlate": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID", "stitchingPolicy": "CUT_CURRENT" }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Comprueba que el estado sea READY
. Si no es así, espera unos segundos y vuelve a enviar la solicitud.
Crear una sesión
Para crear una sesión para un vídeo con costura de anuncios, usa el método projects.locations.liveSessions.create
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID", "playUri": "PLAY_URI", "liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Una vez que se haya recibido la respuesta, podrá reproducir la emisión en directo con anuncios insertados haciendo referencia al URI del campo playUri
del objeto de respuesta.
La API Video Stitcher genera un ID de sesión único para cada solicitud. Una sesión caduca si no se solicita el playUri
en los últimos 5 minutos.
Reproducir la emisión en directo con anuncios insertados
Reproduce la emisión en directo con anuncios insertados mediante el URI del campo playUri
del objeto de respuesta. Para reproducir esta emisión en directo en Shaka Player, sigue estos pasos:
Insertar pausas publicitarias
La API Video Stitcher inserta los anuncios obtenidos de la etiqueta de anuncio en cada pausa publicitaria. Las pausas publicitarias se indican en el manifiesto mediante marcadores de anuncio. Los marcadores de anuncios los insertan los codificadores de emisiones en directo. Para obtener más información sobre los marcadores de anuncios HLS y DASH admitidos, consulte la documentación sobre marcadores de anuncios.
Si has usado la API Live Stream para crear tu emisión en directo, puedes usar eventos de canal para insertar pausas publicitarias.
Confirmar que se ha combinado un anuncio
Un anuncio debe codificarse antes de poder insertarse en una sesión en directo. Si ves un vídeo de pizarra en lugar de un anuncio, espera a que se codifique el anuncio e inserta otra pausa publicitaria.
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.
Eliminar la configuración en directo
Para eliminar la configuración activa, ejecuta el siguiente comando:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID", "verb": "delete", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Eliminar la pizarra
Para eliminar la configuración de la pizarra, ejecuta el siguiente comando:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID", "verb": "delete", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Eliminar la clave de CDN
Para eliminar la clave de CDN, ejecuta el siguiente comando:
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "delete", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
C#
Antes de probar este ejemplo, sigue las C# instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Antes de probar este ejemplo, sigue las PHP instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Ruby
Antes de probar este ejemplo, sigue las Ruby instrucciones de configuración de la guía de inicio rápido de la API Video Stitcher con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby Video Stitcher API.
Para autenticarte en la API Video Stitcher, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Revocar tus credenciales
Siguientes pasos
Consulta la documentación de referencia de la API Video Stitcher.