Contexte
Empreinte offre une API des fonctions de la WEBTV qui offre la capacité de communiquer avec un site ou une application depuis un autre site afin de rendre possible la communication de données entre applications.
L’API se caractérise par l’envoi d’une requête HTTP sous forme d’un schéma URL contenant les commandes que l’on souhaite, et la réponse est renvoyée en JSON (Javascript Object Notation).
L’API natif, est un ensemble de requêtes HTTP (ou fonctions) dont chacune comprend :
- Une méthode http,
- Un point d'extrémité accessible via un jeton de session [token],
- Une liste de paramètres,
- Un type de retour {integer, boolean, JSON RPC}.
L’API NATIF est décrite exhaustivement dans les pages qui suivent : c’est l’objet de ce document.
Afin de sécuriser les échanges, il est primordial de récupérer une clé d’API unique.
Afin de sécuriser l’accès aux vidéos, nous utilisons l’API d’Empreinte
Tout d’abord il faut accéder au logiciel pour authentification et récupération de jeton d’accès (TOKEN)
https://support.empreinte.com/docs/api/doc.html
Sand box
http://demo-api.webtv-solution.com/connect.html
Description de l’api
Nous résumons ci-après les classes (et méthodes) de l’API.
Classe |
Méthode |
Description |
Advertising |
GET/POST/DELETE |
List all advertisings - Delete a single advertising - Return choices for the Advertising - Form advertising select input |
App-parameters |
GET |
get infos to extension chrome. - get ParameteBag (All Parameters). - get Application ParameteBag. |
Auth tokens |
GET/POST |
get client list of tokens. - regenerate all tokens - Generate a new token for a specific client |
Caption |
GET/POST/DELETE |
get Video Caption. - Generate Caption. |
Channel |
GET/POST/DELETE |
List all channels. - List all channels group by themes. - Delete a single Channel. - Return url export channel - Return choices for the Theme Form Channels select input. |
Chutier |
GET/POST/DELETE |
Creates a new chutier from the - submitted data. - List all chutiers. - Delete a single chutier. |
Comments |
GET/POST/DELETE |
------- |
CommentsLive |
GET/POST/DELETE |
------- |
Configuration general |
GET/POST/DELETE |
------- |
Cron Automation Event |
GET |
------- |
Cron Synchronization |
GET |
------- |
Dailymotion |
GET/POST |
------- |
DataTable |
GET |
------- |
Direction |
GET/POST/DELETE |
------- |
Display-Bloc |
GET/POST |
------- |
Display-program |
GET/POST/DELETE |
------- |
EncoderLive |
GET/POST |
------- |
Event |
GET/POST |
------- |
Fields Order |
GET/POST |
------- |
HomeConf |
GET/POST |
------- |
Ips |
GET/POST |
------- |
Iptv |
GET/POST |
------- |
LiveConf |
GET/POST |
------- |
Lives |
GET/POST/DELETE |
------- |
Login |
|
------- |
Media |
GET/POST/DELETE |
------- |
Message |
GET/POST/DELETE |
------- |
Mooc |
|
------- |
MultiDelete |
POST |
------- |
Output |
POST |
------- |
Param |
GET/POST |
------- |
Player Parameter |
GET/POST |
------- |
Playlist |
GET/POST/DELETE |
------- |
Podcast |
GET/POST/DELETE |
------- |
Preset |
GET/POST/DELETE |
------- |
Profiles Groupes |
GET/POST/DELETE |
------- |
Profiles Users |
GET/POST/DELETE |
------- |
Right |
GET/POST/DELETE |
------- |
Rmbox group |
GET/POST/DELETE |
------- |
Rmbox |
GET/POST/DELETE |
------- |
Routes |
GET |
------- |
Screen |
GET/POST/DELETE |
------- |
Server |
GET/POST |
------- |
Station |
GET/POST/DELETE |
------- |
Stats |
GET |
------- |
Stats Acces |
GET |
------- |
Stats Audience |
GET |
------- |
Stats Bande Passante |
GET |
------- |
Stats Engagement |
GET |
------- |
Stats Geo |
GET |
------- |
Stats Storage |
GET |
------- |
Stats Technologie |
GET |
------- |
Stats Time Reel |
GET |
------- |
Subscription Group |
GET/POST/DELETE |
------- |
Subscription ser |
GET/POST/DELETE |
------- |
Survey |
GET/POST/DELETE |
------- |
Synchronisation |
GET/POST |
------- |
Template |
GET/POST |
------- |
Theme |
GET/POST/DELETE |
------- |
Video |
GET/POST/DELETE |
------- |
Vote |
GET/POST/DELETE |
------- |
Web Services Event |
GET/POST |
------- |
Youtube |
GET/POST |
------- |
Zone |
GET/POST/DELETE |
------- |
richMedia |
GET/POST/DELETE |
------- |
webservice |
GET/POST/DELETE |
send mail since contact form mail - Web Service Live: get content service loginMobile - Web Service Live encrypt/decrypt Test web service token generator. |
Classes et fonctions détaillés
Authentification
ACCES |
Permettre l’accès au logiciel |
METHODE |
POST |
END POINT |
get infos to extension chrome. - get ParameteBag (All Parameters). - get Application ParameteBag. |
PARAMETRES |
get client list of tokens. - regenerate all tokens - Generate a new token for a specific client |
RETURN |
si succès --- JSON : {"Token": "abcd4545dfdfdwvuuuhsdgfggff"} //ce jeton est disponible pour une période de 24 heures |
|
si échec --- JSON : {"Message": "le texte du message"} -Login ou password sont incorrects. Nom d'utilisateur est vide. -Mot de passe est vide. - API Key est invalide. - Client inexistant. |
Le jeton [token] doit être fourni dans chaque point d'extrémité.
Utilisateur
Ajouter un utilisateur
AJOUTER |
Ajouter un utilisateur |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/user/add/[token] |
PARAMETRES |
Nom : string - Prenom : string - Login : string - Password : string - Type : string ('E' , 'C' , 'A') - Vignette : string url réel du fichier image sur le serveur du client. - Description : string - GroupId : int - Phone: string - Mobile: string - Mobile: string - Mail: string - Etat: string ('Maj', 'Del', 'Add', 'Mod') - |
RETURN |
ID de l'utilisateur ajouté si succès, False si non |
Charger un utilisateur
CHARGER |
Charger la liste des utilisateurs |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/user/loadall/[token] |
PARAMETRES |
Id : integer |
RETURN |
si succès--- JSON {"Id": 1, "Nom": "Nom utilisateur", "Prenom": "Prénom utilisateur", "Vignette": "http://url/de/vignette.png", .... } |
|
si échec --- {"Message":"text message"} texte du message : * Token inexistant. * Token invalide. * Client inexistant. * ID utilisateur vide. |
Charger la liste des utilisateurs
CHARGER |
Charger la liste des utilisateurs |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/user/loadall/[token] |
PARAMETRES |
Id : integer |
RETURN |
si succès--- JSON {"Id": 1, "Nom": "Nom utilisateur", "Prenom": "Prénom utilisateur", "Vignette": "http://url/de/vignette.png", .... }, { ..... } |
|
si échec --- {"Message":"text message"} texte du message : * Token inexistant. * Token invalide. * Client inexistant. |
Supprimer un utilisateur
SUPPRIMER |
Supprimer un utilisateur |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/user/delete/[token] |
PARAMETRES |
Id : integer |
RETURN |
Bolean : true si succès, false si non |
Chercher un utilisateur avec un critère
CHERCHER |
Chercher un utilisateur avec un critère |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/user/LoadbyFieldName/[token] |
PARAMETRES |
Field: string (nom de la colonne (Nom, Prenom, etc)) |
|
Value: string (valeur ou une partie de valeur de la colonne) |
RETURN |
Bolean : true si succès, false si non |
Groupe
Charger un groupe
CHARGER |
Charger un groupe |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/group/load/[token] |
PARAMETRES |
GroupId: integer |
RETURN |
si succès --- JSON{ "Id": 1, "Titre": "Titre du groupe", "Description": "Description du groupe },{ … } |
|
si echéc --- {"Message":"text message"}texte du message : Token inexistant. Token invalide. * Client inexistant. * Paramètre GroupId inexistant |
Lister les groupes d'utilisateurs
LISTER |
Lister les Groupes d’utilisateurs |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/group/loadall/[token] |
PARAMETRES |
Pas de paramètre |
RETURN |
si succès --- JSON{ "Id": 1, "Titre": "Titre du groupe", "Description": "Description du groupe },{ … } |
|
si echéc --- {"Message":"text message"}texte du message : Token inexistant. Token invalide. * Client inexistant. |
Vidéo
Importer une vidéo
IMPORTER |
Importer une vidéo |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/video/upload/[token] |
PARAMETRES |
VideoName string le nom du fichier vidéo dans le serveur du cliente |
|
CallBack string url de retour client |
|
JSON JSON : { "VideoToken":"c45f506db2f7ecce39cec3f9979e4406", "Thumbnails":["img_54b93b7df0f84.jpg", "img_54b93b7e1c7da.jpg", "img_54b93b7e454ad.jpg", "img_54b93b7e77c97.jpg", "img_54b93b7e84ce0.jpg"]} |
RETURN |
si succès --- {"VideoToken":"c45f506db2f7ecce39cec3f9979e4406"} |
|
si echéc --- JSON : {"Message": "texte du message"}texte du message :▪ Vous devez choisir un fichier vidéo. ▪ Le fichier vidéo doit avoir l'extension {avi, mov, mpg, flv, mpa, asf, wma, mp2, m2p, vob}. ▪ Erreur d'importation du fichier vidéo. ▪ Erreur d'enregistrement du fichier vidéo. ▪ Vous devez spécifier l'url de callback. ▪ Token inexistant ▪ Token invalide ▪ Client inexistant. |
Charger une vidéo avec son ID
CHARGER |
Charger une vidéo avec son ID |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/video/load[token] |
PARAMETRES |
VideoId : integer |
RETURN |
si succès --- JSON { "Id": 1, "Titre": "Titre du vidéo", "Auteur": "Auteur", "CopyRight": "CopyRight", "DateDebut": "01/01/2015", "DateFin": "03/01/2015", .....} |
|
si echéc --- {JSON {"Message": "Video Id n'existe pas."} |
Supprimer une vidéo
SUPPRIMER |
Supprimer une vidéo |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/video/delete/[token] |
PARAMETRES |
VideoId : integer |
RETURN |
si succès --- {"Message":"OK"} |
|
si echéc --- {"Message":"text message"}texte du message : * Token inexistant * Token invalide * Client inexistant * ID vidéo est vide |
Charger la liste des vidéos
SUPPRIMER |
Supprimer une vidéo |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/video/loadall/[token] |
PARAMETRES |
Pas de paramètre |
RETURN |
si succès --- JSON{ "Id": 1, "Titre": "Titre du vidéo", "Description": "Description du vidéo", "Auteur": "Auteur", "DateDebut": "01/01/2015", "DateFin": "03/01/2015", .....},{ .....} |
|
si echéc --- {"Message":"text message"}texte du message : * Token inexistant * Token invalide * Client inexistant |
Ajouter une vidéo
AJOUTER |
Ajouter une vidéo |
DESCRIPTION |
La fonction ajouter une vidéo permet d'ajouter une vidéo déjà importer avec la méthode “Impoter une vidéo”. |
|
▪ Lors de l'importation de la vidéo un jeton sur le fichier situé sur le serveur d'upload sera généré (VideoToken), la procédure d'ajout permet alors de transférer la vidéo vers le serveur de streaming, ainsi de remplir les métadonnées de cette vidéo (Titre, Auteur, …etc). |
|
▪ La procédure d'importation d'une vignette engendre deux sénarios possible : |
|
1. Lors de l'importation d'une vidéo, la fonction upload retourne au client la liste des vignettes (5) disponible pour la vidéo, donc le client peut par la suite ajouter la vignette via le paramètre (Vignette), cette dernière sera transférer vers le BO du client et elle sera associé au vidéo correspondante.
|
|
2. Si le client ne choisi aucune vignette disponible pour la vidéo et il décide de choisir une de chez lui, alors il pourra importer sa propre vignette via le paramètre (Imagedata), dans ce cas la vignette choisie sera transférer vers le BO du client et elle sera associée au vidéo correspondante. |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/video/loadbyfieldName/[token] |
Liste des paramétres
PARAMETRES |
VideoToken : string un jeton généré lors de l'importation |
|
CallBack: string url fournie par le client, retourne au client un JSON{ "Id" : "1232" Status: "Y |
|
Titre: string |
|
Auteur: string |
|
DateDebut: string yyyy-mm-dd |
|
DateFin: string yyyy-mm-dd |
|
Description: string |
|
MotCles: string |
|
Vignette: string le nom de la vignette générer lors de l'importation (obligatoire) |
|
Imagedata: string url de la vignette sur le serveur du client |
|
Themes : {1,2,3} La liste des thèmes Id au format JSON |
RETURN |
si succès --- { "Id":"1234", "VignetteResult":"1 - message d'erreur", //message d'erreur : Extension invalide , veuillez choisir ('jpg', 'png', 'gif'). "MP4":"l'url d'export de la vidéo", http://client.webtv-solution export/video/1234 "PathToThumbnails":"url d'accès aux vignettes de la vidéo", // http://path/to/thumbnails/vignette_1.jpg } |
|
si échec --- JSON : {"Message": "texte du message"} texte du message :* Veuillez spécifier le jeton de la vidéo. * Token inexistant. * Token invalide. * Client inexistant. |
Theme
Charger un thème avec l’ID
CHARGER THEME |
Charger un thème avec l’ID |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/theme/load/[token] |
PARAMETRES |
ThemeId : integer |
RETURN |
si succès --- JSON{"Id": 1, "Titre": "Titre du théme", "Description": "Description du théme", "Logo": "http://url/de/logo.png", .....} |
|
si echéc --- {JSON : {"Message": "texte du message"}texte du message : * Token inexistant. * Token invalide. * Client inexistant. * ThemeId est obligatoire. |
Charger la liste des thèmes
CHARGER LISTE |
Charger la liste des thèmes |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/theme/loadall/[token] |
PARAMETRES |
Pas de paramètre |
RETURN |
si succès --- JSON{"Id": 1, "Titre": "Titre du théme", "Description": "Description du théme", "Logo": "http://url/de/logo.png", .....},{ .....} |
|
si echéc --- {JSON : {"Message": "texte du message"}texte du message : * Token inexistant. * Token invalide. * Client inexistant. |
Canal
Charger la liste des canaux
CHARGER LISTE |
Charger la liste des canaux |
METHODE |
POST |
END POINT |
http://demo-api.webtv-solution.com/theme/loadall/[token] |
PARAMETRES |
Pas de paramètre |
RETURN |
si succès --- JSON{ "Id": 1, "Titre": "Titre du canal", "LangsId": "fr", .....},{ .....} |
|
si echéc --- {JSON : {"Message": "texte du message"}texte du message : * Token inexistant. * Token invalide. * Client inexistant. |
Advertising
### GET /advertising ### |
List all advertisings. |
List all advertisings. |
### DELETE /advertising/delete/{id} ### |
Delete a single advertising. |
Delete a single advertising. |
#### Requirements #### |
id |
- Requirement: \d+ |
### GET /advertising/select-choices/{idToIgnore} ### |
Return choices for the Advertising Form advertising select input. |
Return choices for the Advertising Form advertising select input. |
#### Requirements #### |
idToIgnore |
- Requirement: \d+ |
#### Parameters #### |
* required: false |
* description: advertisingId |
### GET /advertising/{id} ### |
Return advertising thumbs. |
Return advertising thumbs. |
### GET /advertising/select-choices/{idToIgnore} ### |
Get a single advertising. |
#### Requirements #### |
id |
- Requirement: \d+ |
- Type: integer |
#### Parameters #### |
* required: false |
* description: advertisingId |
#### Response #### |
title: |
* type: string |
link_url: |
* type: string |
date_start: |
* type: DateTime |
date_end: |
* type: DateTime |
active: |
* type: boolean |
id: |
* type: integer |
logo: |
* type: string |
created_at: |
* type: DateTime |
updated_at: |
* type: DateTime |
## /advertising/add ## |
### POST /advertising/edit/{id} ### |
Edit the advertising with the submitted data. |
Edit the advertising with the submitted data. |
#### Requirements #### |
id |
- Requirement: \d+ |
#### Parameters #### |
empAdvertisingForm: |
* type: object (AdvertisingType) |
* required: true |
empAdvertisingForm[title]: |
* type: string |
* required: false |
mpAdvertisingForm[link_url]: |
* type: string |
* required: false |
empAdvertisingForm[date_start]: |
* type: datetime |
* required: true |
empAdvertisingForm[date_end]: |
* type: datetime |
* required: true |
empAdvertisingForm[active]: |
* type: choice |
* required: true |
empAdvertisingForm[logo]: |
* type: string |
* required: false |
* description: form_attr_vignette |
## /advertising/ids ## |
### GET /advertising/ids ### |
List all advertising ids. |
List all advertising ids. |
## /advertising/upload/thumb ## |
### POST /advertising/upload/thumb ### |
Upload Advertising Logo. |
#### Parameters #### |
empApiFileForm: |
* type: object (UpFileType) |
* required: true |
empApiFileForm[thumb]: |
* type: file |
* required: true |
App-parameters
## /global/get-param-extension ## |
### GET /global/get-param-extension ### |
get infos to extension chrome. |
get infos to extension chrome. |
## /global/parameter-bag/all ## |
### GET /global/parameter-bag/all ### |
get ParameteBag (All Parameters). |
et ParameteBag (All Parameters). |
## /global/parameter-bag/app ## |
get Application ParameteBag. |
get Application ParameteBag. |
### POST /global/log ### |
Function log |
Function log |
#### Requirements #### |
cause |
- Type: string |
exception |
- Type: string |
module |
- Type: string |
error_code |
- Type: string |
Auth tokens
#### /tokens/list ## |
### GET /tokens/list ### |
get client list of tokens._ |
get client list of tokens. |
## /tokens/regenerate-all ## |
### GET /tokens/regenerate-all ### |
regenerate all tokesn |
regenerate all tokens |
## /tokens/{id}/regenerate ## |
### GET /tokens/{id}/regenerate ### |
Generate a new token for a specific client |
Generate a new token for a specific client |
#### Requirements #### |
id |
- Requirement: \d+ |
Caption
## /caption/video/{id}/captions-by-{lang}-language ## |
### GET /caption/video/{id}/captions-by-{lang}-language ### |
get Video Caption. |
get Video Caption. |
#### Requirements #### |
id |
- Requirement: \d+ |
lang |
- Requirement: [a-zA-Z_]+ |
## /caption/video/{id}/generate-caption ## |
### POST /caption/video/{id}/generate-caption ### |
Generate Caption. |
#### Requirements #### |
id |
- Requirement: \d+ |
## /caption/video/{id}/generate-tmp-json ## |
### POST /caption/video/{id}/generate-tmp-json ### |
Generate tmp json : apimediapostgeneratetmpjson |
#### Requirements #### |
id |
- Requirement: \d+ |