Transférer votre vidéothèque Vimeo vers votre propre pipeline
Vimeo est une bonne plateforme pour héberger et partager des vidéos. Mais tôt ou tard, de nombreuses équipes souhaitent placer leurs vidéos dans un environnement qu’elles contrôlent : leur propre lecteur, leur propre CDN, une archive ou un pipeline qui ajoute des sous-titres ou des vignettes. Récupérer les fichiers implique d’écrire un client pour l’API Vimeo, de parcourir votre vidéothèque page par page, d’attendre les vidéos encore en cours de traitement et de choisir le bon rendu pour chacune.
🤖 /vimeo/import gère l’importation, attend que le traitement se termine
dans la limite d’un délai défini, puis sélectionne le rendu demandé avant de transmettre les vidéos
au reste de votre Assembly. Cet exemple importe une page contenant jusqu’à 20 vidéos ;
page_number vaut 1 par défaut.
Étape 1 : accorder à Transloadit un accès en lecture à vos vidéos
Vimeo ne permet à une application de télécharger vos fichiers vidéo qu’avec un jeton disposant de l’autorisation Video Files, et n’accorde cette autorisation aux applications tierces que dans le cadre de son programme partenaire. Vous devez donc créer vous-même le jeton, dans votre propre application Vimeo :
- Sur developer.vimeo.com/apps, créez une application (ou ouvrez-en une que vous possédez) et générez un jeton d’accès personnel avec les autorisations Public, Private et Video Files.
- Dans la Transloadit Console, ouvrez Informations d’identification, ajoutez un ensemble
d’informations d’identification Vimeo, choisissez Coller un jeton d’accès personnel et
donnez-lui un nom, par exemple
vimeo.

Lors de l’enregistrement, Transloadit vérifie le jeton auprès de Vimeo et vous indique si une autorisation manque. Le jeton ne sera plus jamais affiché. Les téléchargements restent soumis à votre forfait Vimeo et aux autorisations de la vidéo. La documentation des informations d’identification Template fournit les détails.

Étape 2 : une seule commande
Commencez par authentifier le CLI Transloadit. La
connexion via le navigateur du SDK utilise
npx -y @transloadit/node auth login pour obtenir une clé dédiée au CLI. Cette clé est distincte de
l’ensemble d’informations d’identification Template pour Vimeo ci-dessus.
Enregistrez ces Assembly Instructions dans vimeo.json :
{
"steps": {
"imported": {
"robot": "/vimeo/import",
"credentials": "vimeo",
"path": "me/videos",
"rendition": "720p",
"files_per_page": 20
},
"encoded_480p": {
"use": "imported",
"robot": "/video/encode",
"preset": "hls/480p",
"ffmpeg_stack": "v7"
},
"encoded_720p": {
"use": "imported",
"robot": "/video/encode",
"preset": "hls/720p",
"ffmpeg_stack": "v7"
},
"hls": {
"use": {
"steps": ["encoded_480p", "encoded_720p"],
"bundle_steps": true,
"group_by_original": true
},
"robot": "/video/adaptive",
"technique": "hls",
"playlist_name": "playlist.m3u8"
},
"stored": {
"use": "hls",
"robot": "/transloadit/store",
"path": "vimeo/${file.original_basename}/${file.meta.relative_path}/${file.name}",
"conflict_strategy": "overwrite",
"result": true
}
}
}
Puis exécutez la commande :
npx -y @transloadit/node assemblies create --steps vimeo.json -o out/
Chaque vidéo de la page sélectionnée est importée en 720p, encodée en 480p et en 720p, puis regroupée
dans son propre flux HLS adaptatif. group_by_original garde les rendus de chaque vidéo
ensemble, ce qui vous donne un playlist.m3u8 par vidéo, nommé d’après son
identifiant Vimeo :
$ find out/hls -name '*.m3u8'
out/hls/1243010274/playlist.m3u8
out/hls/1243010274/852x480_785191_25/852x480_785191_25.m3u8
out/hls/1243010274/1280x720_1367783_25/1280x720_1367783_25.m3u8
out/hls/1243010465/playlist.m3u8
out/hls/1243010465/852x480_769775_25/852x480_769775_25.m3u8
out/hls/1243010465/1280x720_1366589_25/1280x720_1366589_25.m3u8
La même arborescence est enregistrée en privé dans votre
Transloadit Storage sous vimeo/.
La lecture publique nécessite une configuration de diffusion distincte ; consultez notre
FAQ sur l’hébergement pour une vue d’ensemble. L’exemple utilise
volontairement overwrite : chaque nouvelle exécution traite à nouveau la
sélection de la page actuelle et crée une nouvelle version conservée à chaque destination
qui existe déjà.
Vous préférez votre propre bucket ? Remplacez le dernier Step par
🤖 /s3/store ou tout autre
Robot de stockage avec le même path.
Adapter l’exemple à votre vidéothèque
- Albums, chaînes et plus encore :
pathaccepte des chemins de l’API Vimeo qui répertorient des vidéos, tels queme/albums/:album_id/videos,me/channels/:channel_id/videosoume/likes. - Vidéothèques volumineuses : Vimeo renvoie jusqu’à 100 vidéos par page. Définissez
files_per_pageet exécutez la commande une fois parpage_number. Le guide pour migrer de Vimeo vers Vimeo explique les pièges de la pagination et le suivi de l’identité des sources. - Qualité :
renditionaccepte les valeurs allant de240pà1080p, ousourcepour le fichier téléversé d’origine. Les originaux ne sont disponibles que si Vimeo les a conservés, et toutes les vidéos ne disposent pas de tous les rendus. Lorsqu’un rendu manque, l’Assembly le signale au lieu d’échouer sans indication. - Traitement toujours en cours : le délai d’attente est limité. Si une vidéo est encore en cours de traitement à l’expiration du délai, l’importation échoue et vous demande de réessayer plus tard. Un échec du transcodage Vimeo fait immédiatement échouer l’importation.
Commencer
Créez le jeton, ajoutez l’ensemble d’informations d’identification, authentifiez le CLI et exécutez la commande ci-dessus avec votre propre compte. La documentation du Robot 🤖 /vimeo/import répertorie tous les paramètres.

