2
votes

Comment obtenir une vignette pour la vidéo Vimeo à l'aide de la nouvelle API

J'essaye de produire la vignette d'image pour les vidéos Vimeo intégrées sur mon site wordpress en utilisant PHP. Les vidéos Vimeo ont une confidentialité au niveau du domaine.

Il semble que Vimeo ait mis à jour son API, comme j'ai essayé les suggestions d'autres réponses publiées ici il y a quelques années, mais aucune de celles-ci ne fonctionne. J'ai parcouru leur nouvelle API et je n'arrive pas à comprendre.

Plus précisément, j'ai essayé quelques variantes de ceci:

<?php
$imgid = 6271487;
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
echo $hash[0]['thumbnail_medium'];  

Cela renvoie toujours une forme d'erreur fatale.

Toute aide sur la meilleure façon d'y parvenir serait grandement appréciée!


5 commentaires

pouvez-vous publier la sortie de print_r ($ hash); ?


êtes-vous sûr que l'API n'est pas sur HTTPS? essayez https


Voici la sortie de print_r ($ hash) avec https "file_get_contents ( vimeo.com/api/ v2 / video / 276827365.php ): échec de l'ouverture du flux: échec de la requête HTTP! HTTP / 1.1 404 introuvable dans ... "


avez-vous essayé https? au lieu de http?


«Cela renvoie toujours une forme d'erreur fatale.» Quelle forme?


3 Réponses :


0
votes

Vous devez utiliser un jeton d'accès dans les en-têtes d'une requête API. Vous devrez également utiliser les URL d'API correctes.

Commencez ici: https://developer.vimeo.com/api/guides/start < / a>


0 commentaires

4
votes

Quelques petites choses: tout d'abord, cette API avec le chemin d'accès / api / v2 / video / , a été abandonnée et remplacée par la "nouvelle" API, publiée il y a quelques années.

Deuxièmement: l'ancienne API ne supportait que les extensions .xml et .json , renvoyant une réponse dans ces formats respectifs; .php n'est pas pris en charge par l'ancienne API.

Pour obtenir la vignette d'une vidéo, vous devez utiliser la nouvelle API , ou si la vidéo est publique et intégrable, utilisez oEmbed . En utilisant la bibliothèque PHP Vimeo, une requête pour obtenir les métadonnées d'une vidéo ressemblerait à ceci:

curl -X GET 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/6271487'

Une requête oEmbed ressemblerait à ceci (exprimée en curl, notez que l'implémentation oEmbed de Vimeo ne renverra que json ou xml):

$videoId = '6271487';
$response = $client->request('/videos/'+$videoId+'/pictures', array(), 'GET');
print_r($response);

Bonne chance!


0 commentaires

2
votes

Pour être complet, j'ai contacté Vimeo et ils ont fourni le ci-dessous qui semble fonctionner parfaitement:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vimeo.com/api/oembed.json?url=https://vimeo.com/VIDEO_ID",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "Referer: REFERER_URL"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}


0 commentaires