Introduction
Les restrictions de lecture peuvent être activées pour une tâche en direct afin d'étendre les protections fournies par le DRM et/ou le cryptage AES-128, notamment :
- Limiter la lecture à un agent utilisateur particulier
- Limiter le nombre d'adresses IP
- limiter le nombre total d'utilisateurs
Pour un ensemble complet de restrictions, vous pouvez les configurer à l'aide de l'API des droits de lecture. Dans ce cas, vous associeriez le playback_rights_id
avec une vidéo. Pour plus de détails, reportez-vous à la section Restrictions au niveau des actifs de la présentation : Document sur les restrictions de lecture Brightcove.
Pour les restrictions d'exécution, vous pouvez spécifier les revendications JSON Web Token (JWT). Ces restrictions incluent la simultanéité de flux et les limites d'appareils. Pour plus de détails, consultez le Restrictions d'exécution section de l'aperçu : Document sur les restrictions de lecture Brightcove.
Avec les flux en direct, vous pouvez également remplacer le DRM CRT pour un utilisateur. Pour plus de détails, consultez le Protection des clés de licence section de l'aperçu : Document sur les restrictions de lecture Brightcove.
Quel que soit le mode que vous choisissez, la demande de travail doit inclure un videocloud.video
attribut pour qu'une vidéo Video Cloud soit créée et liée à la tâche en direct. Les playback_rights_id
L'attribut peut être mis à jour sur la vidéo Video Cloud pour modifier les restrictions de lecture via le API CMS.
Vous devrez également créer un jeton Web JSON (JWT) avec les réclamations appropriées. Le JWT devra être inclus dans toutes les demandes de serveur de licences. Si vous implémentez votre propre lecteur, vous devrez passer cette valeur soit dans un BCOV-Auth
en-tête ou bcov_auth
paramètre de requête (en plus du jeton DRM).
Créer un travail en direct à l'aide de Studio
Vous pouvez créer une tâche en direct qui utilise les restrictions de lecture dans Video Cloud Studio.
- Examinez les détails de la création de flux en direct dans le Créer un flux en direct à l'aide de l'API Brightcove Live document.
-
Dans Studio, lorsque vous créez votre événement en direct, développez la Options avancées section.
-
Pour le cryptage du contenu, sélectionnez l'une des options suivantes
- AES-128
- Gestion des droits numériques (DRM)
Pour plus de détails, consultez le Configuration des options avancées partie de la Création et gestion d'événements en direct à l'aide du module Live document.
-
Pour étendre les protections de lecture, cochez la case Activer les restrictions de lecture.
La demande d'emploi doit inclure un
videocloud.video
attribut afin qu'une vidéo Video Cloud soit créée et liée à la tâche en direct. Lesplayback_rights_id
L'attribut peut être mis à jour sur la vidéo Video Cloud pour modifier les restrictions de lecture via le API CMS.
Créer un job Live à l'aide de l'API Live
Vous pouvez créer une tâche en direct qui utilise des restrictions de lecture à l'aide de l'API Live de Brightcove.
- Examinez les détails de la création de flux en direct dans le Création et gestion d'événements en direct à l'aide du module Live document.
-
Passez en revue les nouveaux champs utilisés pour ajouter des restrictions de lecture à une tâche en direct :
-
drm
objet :require_playback_token
(booléen)- L'autorisation de lecture JWT sera requise lors de la demande de licence.
check_playback_rights
(booléen)- L'autorisation de lecture JWT sera requise lors de la demande de licence. Utilise l'identifiant des droits de lecture associé à la vidéo ou au JWT pour appliquer les restrictions.
-
videocloud.video
objet :playback_rights_id
(chaîne)- Associe les restrictions de lecture spécifiées à une vidéo.
-
-
Créez une tâche en direct à l'aide de l' API Live de Brightcove.
Exemple de demande et de réponse
Vous trouverez ci-dessous un exemple de corps de demande d'API Live pour la création d'une tâche Live avec des restrictions de lecture.
Exemple de corps de requête
{ "live_stream": true, "region": "us-west-2", "reconnect_time": 300, "ad_insertion": false, "static": false, "drm": { "modes":["all"], "require_playback_token": true, "check_playback_rights": true }, "encryption": { "check_playback_rights": true, "method": "aes-128", "type": "internal", "key": "24432646294A404E635266556A586E32" }, "live_dvr_sliding_window_duration": 300, "videocloud": { "live_to_vod": true, "video": { "name": "Test EPA", "description": "", "long_description": "", "tags": [], "reference_id": "", "link": { "url": "", "text": "" }, "custom_fields": {} } }, "outputs": [{ "label": "hls720p", "live_stream": true, "height": 720, "video_bitrate": 2000, "segment_seconds": 6, "keyframe_interval": 60 }, { "label": "hls480p", "live_stream": true, "height": 480, "video_bitrate": 1000, "segment_seconds": 6, "keyframe_interval": 60 } }
Exemple de réponse
La ligne en surbrillance contient la vidéo
id
que vous devez ajouter leplayback_rights_id
{ "id": "f47487cf81f84764b280fbfaefed524a", "outputs": [ { "id": "0-f47487cf81f84764b280fbfaefed524a", "label": "hls720p" }, { "id": "1-f47487cf81f84764b280fbfaefed524a", "label": "hls480p" }, { "id": "2-f47487cf81f84764b280fbfaefed524a", "playlist_type": "defaultS3", "type": "playlist", "drm": { "token": "eyJh...axy8", "modes": [ { "type": "fairplay", "key_system": "com.apple.fps.1_0", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/fp?token=eyJh...axy8", "certificate_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/cert/fp?token=eyJh...axy8", "filename": "playlist_fp.m3u8", "dvr_filename": "playlist_fp_dvr.m3u8", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp.m3u8", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp_dvr.m3u8", "playback_added_cdns": [] }, { "type": "widevine", "key_system": "com.widevine.alpha", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/wv?token=eyJh...axy8", "filename": "playlist_wv.m3u8", "dvr_filename": "playlist_wv_dvr.m3u8", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv.m3u8", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv_dvr.m3u8", "playback_added_cdns": [] }, { "type": "playready", "key_system": "com.microsoft.playready", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/pr?token=eyJh...axy8", "filename": "playlist.mpd", "dvr_filename": "playlist_dvr.mpd", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist.mpd", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_dvr.mpd", "playback_added_cdns": [] } ], "token_expires_in": 43200, "require_playback_token": true, "check_playback_rights": true } } ], "stream_url": "rtmp://ep8-usw2.a-live.io:1935/f47487cf81f84764b280fbfaefed524a", "stream_name": "alive", "static": false, "event_length": 93600, "job_videocloud_asset_id": "70701312966202", "encryption": {}, "drm_enabled": true, "drm": { "token": "eyJh...axy8", "modes": [ { "type": "fairplay", "key_system": "com.apple.fps.1_0", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/fp?token=eyJhb...axy8", "certificate_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/cert/fp?token=eyJhb...axy8", "filename": "playlist_fp.m3u8", "dvr_filename": "playlist_fp_dvr.m3u8", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp.m3u8", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp_dvr.m3u8", "playback_added_cdns": [] }, { "type": "widevine", "key_system": "com.widevine.alpha", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/wv?token=eyJhb...axy8", "filename": "playlist_wv.m3u8", "dvr_filename": "playlist_wv_dvr.m3u8", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv.m3u8", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv_dvr.m3u8", "playback_added_cdns": [] }, { "type": "playready", "key_system": "com.microsoft.playready", "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/pr?token=eyJh...axy8", "filename": "playlist.mpd", "dvr_filename": "playlist_dvr.mpd", "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist.mpd", "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_dvr.mpd", "playback_added_cdns": [] } ], "token_expires_in": 43200, "require_playback_token": true, "check_playback_rights": true } }
Ajouter des restrictions au travail en direct
Après avoir créé le flux en direct, vous pouvez ajouter des restrictions de lecture à la vidéo créée pour le travail en direct à l'aide de la API CMS.
Demande d'API CMS
Pour ajouter l'identifiant des droits de lecture à la vidéo, envoyez un Mettre à jour la vidéo requête à l'API CMS avec le corps de requête suivant :
{
"playback_rights_id": "your playback_rights_id"
}
Livrer le flux
Si vous utilisez le lecteur Web Brightcove ou l'un des SDK de lecteur natif Brightcove pour diffuser le flux en direct, la mise en œuvre des restrictions de lecture est la même que pour la VOD. Voir ce qui suit :
- Configurez votre lecteur section du document Mise en œuvre des droits de lecture