Intégration FTP avec l’API V4 – Besoin d’une passerelle technique pour upload automatique

Bonjour à tous,

Nous sommes en train de finaliser un pipeline de postproduction automatisé dans lequel nous transférons des fichiers vidéo depuis un serveur FTP (dédié à l’acquisition terrain) vers Frame
Après avoir étudié en profondeur l’API V4, nous avons réussi à authentifier notre application, générer les tokens nécessaires, et comprendre le fonctionnement général de l’upload (création d’assets, PUT sur l’upload_url, etc.).
Mais voici notre problématique : Frame ne propose pas de support FTP en natif , ce que nous comprenons.

Nous avons donc tenté de créer un bridge logiciel (en Python), qui :

  • télécharge les fichiers depuis notre FTP,

  • puis les transfère automatiquement vers Frame via API.

  • Cela fonctionne en théorie, mais en pratique :

  • Nous rencontrons des erreurs 401 sporadiques malgré un token valide.

  • Nous ne savons pas si ce type de workflow est “toléré” ou supporté techniquement par Frame.

  • Il est difficile de trouver une documentation claire sur la façon d’utiliser des URLs pré-signées ou des endpoints spécifiques (comme ceux utilisés dans les workflows C2C type Atomos ou Teradek).

Notre question est donc simple :
Existe-t-il un moyen validé ou recommandé pour ingérer automatiquement des fichiers depuis un serveur distant (FTP ou autre) vers Frame via l’API ?

Même une piste partielle (ex. : possibilité de générer des upload URLs à l’avance, best practices, webhooks à déclencher…) serait très utile pour éviter de maintenir une infrastructure maison qui pourrait ne pas tenir dans le temps.
On est ouverts à discuter, en public ou en privé, avec un développeur de l’équipe, ou tout utilisateur ayant déjà tenté ce type d’intégration.

Dans l’attente de vos retours,

Remi

@soukoner we do not specifically support FTP as a connection to Frame.io, however our Server to Server authentication could be of value to you, however it is limited to Adobe Managed Frame.io Accounts at this time (currently scoped to Enterprise accounts, yet coming to all accounts in the future as I mentioned in our Early Access announcement post last month).

The file.create endpoint should return the presigned urls to you when you make the call, provided you get a successful 201 response.

In practice, you would make the POST https://api.frame.io/v4/accounts/{account_id}/folders/{folder_id}/files call with your file_size, media_type and name, which will then then return the upload_urls within the data payload, such as this example that is on our documentation:

{
  "data": {
    "created_at": "2023-09-25T19:18:29.614189Z",
    "file_size": 1137444,
    "id": "2e82fa5d-cb60-4f57-a2ae-8887ca76203e",
    "media_type": "image/png",
    "name": "asset.png",
    "parent_id": "c2e43afb-4794-4268-adb9-34a95e73c811",
    "project_id": "d8145e89-d8cf-49a8-a3ed-087416b8460c",
    "status": "created",
    "type": "file",
    "updated_at": "2024-02-07T16:44:41.986478Z",
    "upload_urls": [
      {
        "size": 20000000,
        "url": "https://my.fileupload.url.dev"
      }
    ],
    "view_url": "https://next.frame.io/project/d5e6011c-2bc9-4596-be05-77d562627112/view/5a89a9fb-0900-4b23-826b-127b90e4db4c"
  }
}

Otherwise, you might be able to utilize our remote-upload method which is in our Alpha version at this time.

You would use the following call:
POST https://api.frame.io/v4/accounts/{account_id}/folders/{folder_id}/files/remote_upload

with a payload of

{
  "data": {
    "name": "asset.png",
    "source_url": "https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png"
  }
}

and also including api-version:alpha in the header request.

I personally have not tried this yet, and it’s still in alpha, but please give that a try and see if it will work for you from your FTP site!