Crear y gestionar sesiones de DVR

En esta página se explica cómo crear y gestionar sesiones de grabadora de vídeo digital (DVR) de la API Live Stream. Una sesión de DVR es un subrecurso de un canal. Puedes usar una sesión de DVR para grabar una emisión en directo futura. Para obtener más información, consulta la guía Crear una sesión de DVR.

Configurar el Google Cloud proyecto y la autenticación

Si no has creado un Google Cloud proyecto y credenciales, consulta la sección Antes de empezar.

Requisitos previos

Debes crear los siguientes recursos antes de crear una sesión de DVR:

  1. Crear un punto final de entrada

  2. Crea un canal con una configuración de conservación y una clave de manifiesto.

Crear una sesión de DVR

Para crear una sesión de DVR, usa el método projects.locations.channels.dvrSessions.create.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de tu canal. Elige una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: identificador definido por el usuario del canal
  • DVR_SESSION_ID: identificador definido por el usuario de la sesión de DVR.
  • INTERVAL_START_TIME: marca de tiempo de inicio de la época de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo, 2014-10-02T15:01:23Z).
  • INTERVAL_END_TIME: hora de inicio de la marca de tiempo de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo, 2014-10-02T15:01:23Z).

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.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Este comando crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .

Obtener detalles de la sesión de DVR

Para obtener los detalles de una sesión de DVR, utiliza el método projects.locations.channels.dvrSessions.get.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de tu canal. Elige una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: identificador definido por el usuario del canal
  • DVR_SESSION_ID: identificador definido por el usuario de la sesión de DVR.

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/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
  "createTime": CREATE_TIME,
  "startTime": START_TIME,
  "updateTime": UPDATE_TIME,
  "state": "SUCCEEDED",
  "dvrManifests": [
    {
      "manifestKey": "manifest_hls",
      "outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8"
    }
  ],
  "dvrWindows": [
    {
      "timeInterval": {
        "startTime": "INTERVAL_START_TIME",
        "endTime": "INTERVAL_END_TIME"
      }
    }
  ]
}

Las sesiones de DVR y los manifiestos generados se eliminan cuando vence el primer segmento según el retentionConfig del canal principal. Si quieres que la sesión dure más que el periodo de conservación configurado, crea un clip del canal.

Actualizar una sesión de DVR

Para actualizar una sesión de DVR, usa el método projects.locations.channels.dvrSessions.patch.

En el siguiente ejemplo se actualizan los periodos de tiempo de la grabación de vídeo usados por la sesión de grabación de vídeo. No todos los campos se pueden actualizar. Consulta la lista de campos admitidos.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de tu canal. Elige una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: identificador definido por el usuario del canal
  • DVR_SESSION_ID: identificador definido por el usuario de la sesión de DVR.
  • INTERVAL_START_TIME: marca de tiempo de inicio de la época de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo, 2014-10-02T15:01:23Z).
  • INTERVAL_END_TIME: hora de inicio de la marca de tiempo de Unix en el manifiesto de la emisión en directo original. Usa una marca de tiempo en formato RFC3339 UTC "Zulu" (por ejemplo, 2014-10-02T15:01:23Z).

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.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Este comando crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .

Las solicitudes de actualización se rechazan si el estado de la sesión de DVR es LIVE y la actualización podría sobrescribir el manifiesto de DVR actual. La única excepción es cuando la actualización acorta la sesión de la DVR (por ejemplo, si se cambia la hora de finalización a la hora actual o a una hora anterior). En ese caso, la sesión de la DVR se detiene inmediatamente y pasa al estado COOLDOWN. Después del periodo de bloqueo de 60 segundos, el manifiesto de la DVR se sobrescribe para reflejar las horas de inicio y de finalización actualizadas.

Listar sesiones de DVR

Para enumerar todas las sesiones de grabación que has creado para un canal, usa el método projects.locations.channels.dvrSessions.list.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de tu canal. Elige una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: identificador definido por el usuario del canal

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "dvrSessions": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
      "createTime": CREATE_TIME,
      "startTime": START_TIME,
      "updateTime": UPDATE_TIME,
      "state": "SCHEDULED",
      "dvrManifests":[
        {
          "manifestKey": "manifest_hls",
          "outputUri": "gs://BUCKET_NAME/dvr/DVR_SESSION_ID/main.m3u8"
        }
      ],
      "dvrWindows":[
        {
          "timeInterval": {
            "startTime": "INTERVAL_START_TIME",
            "endTime": "INTERVAL_END_TIME"
          }
        }
      ]
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/my-other-DVR-session",
      "createTime": CREATE_TIME,
      "startTime": START_TIME,
      "updateTime": UPDATE_TIME,
      "state": "SCHEDULED",
      "dvrManifests":[
        {
          "manifestKey": "manifest_hls2",
          "outputUri": "gs://BUCKET_NAME/dvr/my-other-DVR-session/main.m3u8"
        }
      ],
      "dvrWindows":[
        {
          "timeInterval": {
            "startTime": "INTERVAL_START_TIME",
            "endTime": "INTERVAL_END_TIME"
          }
        }
      ]
    },
  ]
}

Eliminar una sesión de DVR

Para eliminar una sesión de grabación de DVR, utiliza el método projects.locations.channels.dvrSessions.delete. Este método elimina la tarea de sesión de DVR y el manifiesto generado. Los recursos creados en el segmento de Cloud Storage se eliminan según la configuración de retención.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de tu canal. Elige una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
  • CHANNEL_ID: identificador definido por el usuario del canal
  • DVR_SESSION_ID: identificador definido por el usuario de la sesión de DVR.

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.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID/dvrSessions/DVR_SESSION_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Este comando crea una operación de larga duración (OLD) que puedes usar para monitorizar el progreso de tu solicitud. Consulta más información en el artículo sobre cómo gestionar operaciones de larga duración .