Publication en masse : le watchfolder FTP

Si vous envisagez de migrer vers Streamlike vos contenus de YouTube ou d'un autre hébergeur de vidéos, cette fonctionnalité est pour vous.

L’usage

Cette fonctionnalité permet de traiter de façon automatique (création ou modification) des médias déposés sur le ftp de votre compte :

  • si vous y déposez plusieurs fichiers médias, ils seront traités automatiquement et les médias correspondant seront créés
  • si vous associez des descripteurs (fichiers .json) à vos fichiers médias, vous pourrez définir ou mettre à jour les méta-données des médias créés ou modifiés

Les noms des fichiers de médias doivent comporter au moins 3 caractères et les médias doivent au moins durer une seconde. Les extensions de fichiers autorisées sont: 3gp, avi, divx, m2t, m4v, mkv, mov, mp3, mp4, mpeg, mpg, ts, vob, webm, wmv.

4 répertoires de traitement automatisé sont disponibles sur votre compte ftp :

  • 1_ToBeProcessed
  • 2_BeingProcessed
  • 3_ProcessedOk
  • 4_ProcessedError

Vos fichiers à traiter automatiquement doivent uniquement être déposés dans le répertoire 1_ToBeProcessed

Accès au compte FTP

Rappelons que vous pouvez accéder à votre compte FTP avec n’importe quel client FTP (comme Filezilla par exemple), en indiquant « bo.streamlike.com » comme hôte et en utilisant vos propres identifiants de connexion à la console Streamlike… à condition que votre compte vous autorise à accéder au FTP.

Vous pouvez aussi utiliser votre explorateur de fichiers en collant cette URL dans la barre d’adresse, ce qui aura pour effet de créer un disque distant sur votre poste de travail: « ftp://login:mdp@bo.streamlike.com » (où « login » et « mdp » sont vos identifiants d’accès à Streamlike)

Description du workflow

Si vous soumettez un descripteur au format json, il doit être déposé en premier, avant le fichier média.

Le traitement ne commence que lorsqu’un fichier média a été reçu. S’il existe un descripteur portant le même nom (mais avec l’extension .json), il sera pris en compte. Sinon, le média sera créé avec pour titre le nom du fichier.

Note : Un fichier média est considéré comme reçu lorsque la durée d’inactivité sur ce fichier est supérieure à 5 minutes. Il est alors déplacé dans le répertoire 2_BeingProcessed pour être traité. Le traitement automatique d’un fichier n’est donc pas instantané mais différé d’au moins 5 minutes.

Si l’encodage s’est bien terminé, le média est déplacé dans le répertoire 3_ProcessedOk.

En cas de problème rencontré par le process, le fichier est déplacé dans 4_ProcessedError préfixé de l’erreur rencontrée :

  • _UNAUTHORIZED_EXTENSION_ si l’extension du média n’est pas reconnue (cf documentation application)
  • _PERMALINK_ALREADY_USED_ERROR_ si le permalink que vous avez indiqué existe déjà sur un compte autre que le vôtre
  • _DESCRIPTOR_JSON_ERROR_ si le fichier descripteur n’est pas valide, ou si les valeurs saisies ne sont pas acceptées
  • _USER_ERROR_ si vous liez le média à un utilisateur inexistant sur votre compte société
  • _ENCODING_ERROR_ si une erreur d’encodage a eu lieu
  • _DESCRIPTOR_FORMAT_ERROR_ si le fichier json ne peut être décodé (problèmes UTF8 ou BOM)

Par exemple, sample.mp4 apparaîtra dans 4_ProcessedError/_PERMALINK_ALREADY_USED_ERROR_sample.mp4 en cas de doublon illicite de permalink.

Traitement sans descripteur json

Le nom du média correspondra au nom du fichier, sans l’extension.

Le permalien correspondra au nom du média mis au format permalien. Si le permalien existe déjà, un permalien aléatoire sera généré.

Par défaut, le statut du média est online.

L’utilisateur auquel est rattaché le média est par défaut l’un des utilisateurs de plus haut profil.

Traitement avec descripteur json

L’ajout d’un descripteur permet de préciser les métadonnées d’un média (création ou modification).

Le fichier descripteur doit être nommé de la même manière que le média. Si votre média se nomme sample.mp4 ou sample.mp3, votre descripteur sera sample.json.

Si le média traité existe déjà sur votre compte (vérification sur la valeur du permalien), ses informations seront mises à jour.

Si vous avez indiqué un permalien n’appartenant pas à votre compte, le média sera traité en erreur. Si vous n’avez pas indiqué de permalien, il sera généré aléatoirement.

Le descripteur peut prendre deux formes :

Une forme simplifiée :

{
 "file_descriptor": {
    "media_name": "Media from WF",
    "media_description": "The media description",
    "media_permalink": "mediapermalink",
    "user_login": "jdoe",
    "media_status": "online",
    "media_credits": "Streamlike",
    "media_custom1": "value1",
    "media_custom2": "value2",
    "media_custom3": "value3",
    "media_custom4": "value4",
    "media_playlists": ["f4652249f825afb3", "34b5d4c81e027eb9"],
    "media_tags": [1, 2, 12]
  }
}

Une forme plus complète, identique au format exigé pour la création d’un média via l’API :

{
  "name": "Media from WF",
  "permalink": "mediapermalink",
  "description": "The media description",
  "type": "video",
  "credits": "Streamlike",
  "user_login": "johndoe",
  "customs":[
    {
      "name": "custom1",
      "value": "value1",
      "public": true
    },
    {
      "name": "custom2",
      "value": "value2",
      "public": true
    },
    {
      "name": "custom3",
      "value": "value3",
      "public": true
    },
    {
      "name": "custom4",
      "value": "value4",
      "public": true
    }
  ],
  "keyword_ids": ["b04a783a7273434a","38feba221f5a632c"],
  "playlists":[
    {
      "id": "88260f195c78af0d",
      "position": "1"
    },
    {
      "id": "6dd350548c925d1d",
      "position": "1"
    }
  ],
  "tag_ids": ["9e041c0fe8bd761d","fc5aa0faccde7a0d"],
  "visibility": {
       "state": "online"
  },
  "source": {
        "cover_timecode": 8,
  }
}

L’ensemble des champs n’est pas obligatoire. Si un champ optionnel n’est pas renseigné en cas de modification d’un média, il ne sera pas mis à jour.

Les valeurs obligatoires sont les suivantes :

  • media_name ou name : le titre du média
  • media_status ou state : valeur parmi les suivantes : online, offline, archived

Les valeurs facultatives sont les suivantes :

  • media_description ou description: la description du média
  • media_permalink ou permalink: le permalien du média
  • media_credits ou credits: les crédits du média
  • media_keywords ou keywords: les mots clés du média
  • media_playlists ou playlists: les playlists auxquelles le média appartient
  • user_login : le login de l’utilisateur auquel va être rattaché le média. En cas d’absence, l’utilisateur auquel est rattaché le média est l’un des utilisateurs de plus haut profil de la société
  • cover_timecode: Le timecode en secondes de la capture de l’image de couverture

Les limites des longueur de champs sont disponibles dans le module MEDIA de l’API.

Si les informations mises à jour via ce process ne sont pas suffisantes à vos besoins, reportez-vous sur l’utilisation des API qui permettent d’enrichir totalement les médias.

Partager ce post

S’abonner à ce blog

Saisissez votre e-mail pour vous abonner à ce blog et revevoir une notification de chaque nouvel article par email.