Créer et gérer des sessions DVR

Cette page vous explique comment créer et gérer des sessions d'enregistreur numérique vidéo (DVR) de l'API Live Stream. Une session DVR est une sous-ressource d'une chaîne. Vous pouvez utiliser une session DVR pour enregistrer une future diffusion en direct. Pour en savoir plus, consultez le guide distinct Créer une session DVR.

Configurer votre authentification et votre projet Google Cloud

Si vous n'avez pas encore créé de projet Google Cloud ni d'identifiants, consultez la section Avant de commencer.

Prérequis

Vous devez créer les ressources suivantes avant de créer une session DVR:

  1. Créer un point de terminaison d'entrée

  2. Créer une chaîne avec une configuration de conservation et une clé de fichier manifeste

Créer une session DVR

Pour créer une session DVR, utilisez la méthode projects.locations.channels.dvrSessions.create.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloud, qui se trouve dans le champ Numéro de projet sur la page Paramètres IAM.
  • LOCATION: emplacement de votre chaîne. Utilisez l'une des régions disponibles.
    Afficher les emplacements
    • 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: identifiant défini par l'utilisateur pour le canal
  • DVR_SESSION_ID: identifiant défini par l'utilisateur pour la session DVR
  • INTERVAL_START_TIME: heure Unix de la balise d'entrée dans le fichier manifeste du flux en direct d'origine. Utilise un code temporel au format UTC "Zulu" RFC3339 (par exemple, 2014-10-02T15:01:23Z).
  • INTERVAL_END_TIME: l'époque Unix de la balise dans le fichier manifeste du flux en direct d'origine. Utilise un code temporel au format "Zulu" UTC RFC3339 (par exemple, 2014-10-02T15:01:23Z).

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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
}

Cette commande crée une opération de longue durée que vous pouvez utiliser pour suivre la progression de votre requête. Pour en savoir plus, consultez la section Gérer les opérations de longue durée .

Obtenir les détails d'une session DVR

Pour obtenir les détails d'une session DVR, utilisez la méthode projects.locations.channels.dvrSessions.get.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloud, qui se trouve dans le champ Numéro de projet sur la page Paramètres IAM.
  • LOCATION: emplacement de votre chaîne. Utilisez l'une des régions disponibles.
    Afficher les emplacements
    • 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: identifiant défini par l'utilisateur pour le canal
  • DVR_SESSION_ID: identifiant défini par l'utilisateur pour la session DVR

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
      }
    }
  ]
}

Les sessions DVR et les fichiers manifestes générés sont supprimés lorsque le premier segment expire selon le retentionConfig du canal parent. Si vous souhaitez que la session dure au-delà de la période de conservation configurée, créez plutôt un extrait de chaîne.

Mettre à jour une session DVR

Pour mettre à jour une session DVR, utilisez la méthode projects.locations.channels.dvrSessions.patch.

L'exemple suivant met à jour les périodes d'enregistrement numérique vidéo utilisées par la session d'enregistrement numérique vidéo. Tous les champs ne peuvent pas être mis à jour. Consultez la liste des champs pris en charge.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloud, qui se trouve dans le champ Numéro de projet sur la page Paramètres IAM.
  • LOCATION: emplacement de votre chaîne. Utilisez l'une des régions disponibles.
    Afficher les emplacements
    • 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: identifiant défini par l'utilisateur pour le canal
  • DVR_SESSION_ID: identifiant défini par l'utilisateur pour la session DVR
  • INTERVAL_START_TIME: heure Unix de la balise d'entrée dans le fichier manifeste du flux en direct d'origine. Utilise un code temporel au format UTC "Zulu" RFC3339 (par exemple, 2014-10-02T15:01:23Z).
  • INTERVAL_END_TIME: l'époque Unix de la balise dans le fichier manifeste du flux en direct d'origine. Utilise un code temporel au format "Zulu" UTC RFC3339 (par exemple, 2014-10-02T15:01:23Z).

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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
}

Cette commande crée une opération de longue durée que vous pouvez utiliser pour suivre la progression de votre requête. Pour en savoir plus, consultez la section Gérer les opérations de longue durée .

Les requêtes de mise à jour sont refusées si l'état de la session DVR est LIVE et que la mise à jour peut écraser le fichier manifeste DVR actuel. La seule exception à cette règle est lorsque la mise à jour raccourcit la session DVR (par exemple, en définissant l'heure de fin sur le moment présent ou un moment passé). Dans ce cas, la session DVR s'arrête immédiatement et passe à l'état COOLDOWN. Après la période d'attente de 60 secondes, le fichier manifeste DVR est écrasé pour refléter les heures de début et de fin mises à jour.

Lister les sessions DVR

Pour répertorier toutes les sessions DVR que vous avez créées pour un canal, utilisez la méthode projects.locations.channels.dvrSessions.list.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloud, qui se trouve dans le champ Numéro de projet sur la page Paramètres IAM.
  • LOCATION: emplacement de votre chaîne. Utilisez l'une des régions disponibles.
    Afficher les emplacements
    • 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: identifiant défini par l'utilisateur pour le canal

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
          }
        }
      ]
    },
  ]
}

Supprimer une session DVR

Pour supprimer une session DVR, utilisez la méthode projects.locations.channels.dvrSessions.delete. Cette méthode supprime la tâche de session DVR et le fichier manifeste généré. Les ressources créées dans le bucket Cloud Storage sont supprimées conformément à la configuration de la conservation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_NUMBER: numéro de votre projet Google Cloud, qui se trouve dans le champ Numéro de projet sur la page Paramètres IAM.
  • LOCATION: emplacement de votre chaîne. Utilisez l'une des régions disponibles.
    Afficher les emplacements
    • 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: identifiant défini par l'utilisateur pour le canal
  • DVR_SESSION_ID: identifiant défini par l'utilisateur pour la session DVR

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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
}

Cette commande crée une opération de longue durée que vous pouvez utiliser pour suivre la progression de votre requête. Pour en savoir plus, consultez la section Gérer les opérations de longue durée .