Problème sur DM avec OpenAPI - API Conteneur du lecteur vidéo
Lors de l’utilisation de la fonction Dynamic Media avec des API ouvertes [ 0] et de l’utilisation du code renvoyé pour afficher la visionneuse depuis un site web externe sans modification, le code génère des URL incorrectes pour récupérer les détails vidéo et ne fonctionnera pas.
Description description
Description : lorsque j’utilise la documentation ici :
https://developer.adobe.com/experience-cloud/experience-manager-apis/api/stable/assets/delivery/#operation/videoPlayerDelivery
et utilisez la fenêtre demande/réponse située sur le côté droit de cette
documentation pour tester une ressource vidéo et obtenir son renvoi du code
Je pense pouvoir reproduire la préoccupation suivante :
Pour le compartiment que j’utilise : « delivery-pxxxxx-eyyyyyy » (domaine de diffusion DMwOA activé).
Pour des raisons de sécurité, j’utilise « none » pour garder l’exemple simple et pour montrer que
la sécurité n'est pas la cause de l'inquiétude.
Pour assetId, j’utilise « urn:aaid:aem:aaaaaaa-bbb-cccc-dddd-eeeeeeeeeeeeee » (assetID valide et approuvé)
Lorsque j'utilise générer la réponse à partir de cela, je vois à la ligne 157 :
let origin = window.location.origin ;
où cela mène à l’erreur que vous voyez dans la demande de miniature
à la ligne 160, et à la demande de manifeste à la ligne 174, puisque
window.location.origin n’est pas diffusé à partir du serveur de diffusion
»https://delivery-pxxxxx-eyyyyyyy.adobeaemcloud.com » mais à partir de votre propre
serveur web comme prévu. Ça devrait être « let »
origin= »https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com » ' ou
quel que soit le serveur de diffusion soumis avec la demande.
C'est un bug ? Quelle est la recommandation?
Résolution resolution
Ce que vous voyez est attendu :
· Le code renvoyé par l’opération de diffusion du lecteur vidéo est fixe
Modèle HTML contenant
let origin = window.location.origin ;
… fetch(${origin}/adobe/assets/…)
Il suppose délibérément qu’il est rendu à partir du même hôte que .
diffusera les flux, à savoir le niveau de diffusion (pour votre compartiment de test).
ce serait https://delivery-pxxxxx-eyyyyyy.adobeaemcloud.com).
· Lorsque vous exécutez ce fragment de code à partir du panneau Swagger « Essayer » (qui
s’exécute sur developer.adobe.com) ou collez-le sur votre propre site,
window.location.origin n'est plus égal à l'hôte de diffusion. La miniature
et les récupérations manifestes vont donc à la mauvaise origine et 404/
Échec CORS.
· Le comportement du service de livraison lui-même est correct ; le problème est
uniquement avec l’emplacement d’exécution de l’échantillon. Parce que /play est un iframe
le wrapper pratique ne peut pas connaître l’hôte approprié lorsqu’il est exécuté en dehors du
domaine de diffusion.
Méthode recommandée pour tester ou incorporer un lecteur de marque :
-
Appelez directement le manifeste, en contournant /play :
· HLS /adobe/assets/{assetId}/manifest.m3u8
· DASH /adobe/assets/{assetId}/manifest.mpd
-
Transmettez cette URL à votre propre instance Video.js / hls.js / dash.js.
(Voir Documents sur les API de diffusion : API de diffusion.)
Si vous devez continuer à utiliser /play, vous devez héberger l’iframe à partir du
domaine delivery-pxxxxx-eyyyyy ou ajustez l’HTML générée afin que :
l’origine est codée en dur sur cet hôte.