Comment fonctionne le matching des produits avec le référentiel de films de la base du CNC ?
Comment se font les mises à jour des produits au fil des envois ?
Quels sont les codes autorisés pour Media, Mode, Qualité, Lang, ipTV ?
Est-il d’anticiper les mises à jour de catalogue (publication/expération) ?
Est-il possible d’envoyer un catalogue film par film ?
Quand réaliser les envois de catalogue en production ?
Pour commencer
Le domaine de recette des API éditeurs est http://int-cncvod.integra.fr
Le domaine de production est https://api-vad.cnc.fr/ et le site est http://vod.cnc.fr.
Attention, il faut enlever /api dans les URLs en passant de la recette à la production
Exemple : http://int-cncvod.integra.fr/api/editor/v1/products to https://api-vad.cnc.fr/editor/v1/products
Nous vous invitions à contacter votre interlocuteur habituel au sein du CNC pour obtenir vos identifiants d’accès.
Voici quelques exemples d’appels :
POST flux de produits par un éditeur : http://int-cncvod.integra.fr/api/editor/v1/products/
GET résultat de l’intégration : http://int-cncvod.integra.fr/api/editor/v1/job/ea49982c-6062-4489-b7b4-c90377e1a0f6 <id du job fourni en réponse de l'appel précédent>
GET service de matching (même algorithme utilisé lors du matching) : http://int-cncvod.integra.fr/api/metadata/v1/?title=gendarme&director=Jean%20Girault&year=1968
Les appels GET peuvent être effectué directement dans un navigateur. Pour le POST, vous pouvez utiliser n'importe quel client REST.
Nous suggérons d'utiliser le client REST « Postman » qui est une extension à installer dans Chrome :
https://chrome.google.com/webstore/detail/postman-rest-client-packa/fhbjgbiflinjbdggehcddcbncdddomop
Quelques points à noter :
Il ne faut pas tenir compte de l'estimation de temps de traitement retourné par le 1e service. Il est bien inférieur à 1h dans les cas de tests simples (quelques minutes) mais jamais en dessous de 2 minutes. Tant que le traitement n'est pas fini le 2e webservice renvoie une erreur 204.
La base ne comporte que les longs métrages pour le moment (pas l'audiovisuel, c’est-à-dire pas les séries).
Qu’est-ce qu’un “produit” ?
Seul les champs suivant nécessitent un nouveau produit : url, media, mode, qualité, date de publication/expiration et prix.
La liste des langues et la liste des boxes disponibles (ipTV) doivent être mises dans un même produit (maxOccurs="unbounded" dans le xsd). Si vous créer plusieurs produits avec les mêmes informations, cela risque de provoquer des doublons chez certains partenaires.
Comment fonctionne le matching des produits avec le référentiel de films de la base du CNC ?
Soit vous disposez dans votre base d'id nous permettant de faciliter le matching (RAC, Allocine), soit le matching est effectué avec le trio Titre/Réalisateur/Année (dans ce cas pas la peine de mettre de balise "id") selon l’algorithme suivant :
Le matching est constitué de 3 requêtes successives jusqu’à trouver un (ou plusieurs) résultats :
(titre-francais OU titre-original) ET réalisateur ET année
(titre-francais OU titre-original) ET réalisateur
(titre-francais OU titre-original)
Si une requête retourne un seul résultat, on considère que c’est bon, on rattache les produits sur une œuvre (ce qu’on appelle “matching direct” ou “success”).
Et si on a plusieurs résultats on les retourne sous forme de propositions (ce qu’on appelle “matching indirect” ou “error”).
Le cas “errorsNotFound” correspond au cas où les 3 requêtes ne renvoie aucun résultat.
En cas de matching positifs nous vous renvoyons les IDs dont nous disposons. Vous pouvez les mettre à jour dans votre base (pour les futurs envois) ou les ignorer.
Comment se font les mises à jour des produits au fil des envois ?
Vous devez ajouter un idProductEditor à chacun de vos produits. Cet id permet d'identifier, d'un appel sur l'autre, les nouveaux produits ou les produits à mettre à jour. Il doit être unique par produit (pour un éditeur donné) sur tous vos envois. Par exemple, si un produit est envoyé le 28/11 avec l’id 1234. Il doit être renvoyé avec le même id le 29/11 pour que nous le mettions à jour. Si vous l'envoyez avec un id différent, nous créerons une nouvelle entrée (ce qui provoquera très probablement un doublon sur l’affichage du site du CNC ou de ses partenaires).
Quels sont les codes autorisés pour Media, Mode, Qualité, Lang, ipTV ?
La documentation technique précise dans la page "Modèle de Données" (http://vod.cnc.fr/doc-editeurs/index.html) les noms exacts à utiliser pour les référentiels Media, Mode, Qualité, Lang, ipTV. Nous explicitions ci-dessous la signification des différents de consommation :
TVOD > Location
SVOD > Abonnement
VODEST > Achat
DVD > DVD (à venir)
BLURAY > BLURAY (à venir)
REPLAY > Rattrapage (replay)
Est-il d’anticiper les mises à jour de catalogue (publication/expération) ?
Oui vous pouvez préciser les dates de publication et d'expiration (et les mettre à jour si besoin à chaque envoi). Seuls les produits disponibles entre ces 2 dates seront ensuite visible sur le site du CNC et de ses partenaires.
Est-il possible d’envoyer un catalogue film par film ?
Cela est à proscrire pour des questions de performance :
- Si on a un entrée avec 2 000 films par exemple, elle va être traitée en une seule fois et le traitement est optimisé pour cela.
- Par contre si on a 2 000 entrées, il faudra attendre 2 000 lancements du batch pour les traiter. Et comme le batch se lance toutes les 2 minutes, alors il faut attendre 66 heures.
Quand réaliser les envois de catalogue en production ?
Il est demandé de prévoir ces envois automatisés la nuit.