So erhalten Sie mit der neuen API ein Miniaturbild für Vimeo-Videos

Lesezeit: 3 Minuten

Benutzer-Avatar
Benutzer108167

Ich versuche, das Miniaturbild für Vimeo-Videos, die auf meiner WordPress-Site eingebettet sind, mit PHP auszugeben. Die Vimeo-Videos haben Datenschutz auf Domänenebene.

Es sieht so aus, als hätte Vimeo seine API aktualisiert, da ich die Vorschläge in anderen Antworten, die hier vor einigen Jahren gepostet wurden, ausprobiert habe, aber keine davon funktioniert. Ich habe ihre neue API durchgesehen und kann es anscheinend nicht verstehen.

Konkret habe ich einige Variationen davon ausprobiert:

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

Dadurch wird immer eine Art schwerwiegender Fehler erneut ausgeführt.

Jede Hilfe auf dem besten Weg, dies zu erreichen, wäre sehr dankbar!

  • kannst du die Ausgabe von posten print_r($hash);?

    – Danyal Sandeelo

    15. Juli 2019 um 10:29 Uhr

  • Sind Sie sicher, dass die API nicht auf HTTPS ist? versuch mal https

    – Danyal Sandeelo

    15. Juli 2019 um 10:30 Uhr

  • Hier ist die Ausgabe von print_r($hash) mit https ” file_get_contents(vimeo.com/api/v2/video/276827365.php): Stream konnte nicht geöffnet werden: HTTP-Anforderung fehlgeschlagen! HTTP/1.1 404 nicht gefunden in …”

    – Benutzer108167

    15. Juli 2019 um 10:40 Uhr


  • hast du https probiert? statt http?

    – Danyal Sandeelo

    15. Juli 2019 um 13:54 Uhr

  • “Dies wiederholt immer eine Art schwerwiegenden Fehler. ” Welche Form?

    – ceejayoz

    15. Juli 2019 um 15:20 Uhr

Ein paar Dinge: Erstens, diese API mit dem Pfad /api/v2/video/ist veraltet und wurde durch die „neue“ API ersetzt, die vor ein paar Jahren veröffentlicht wurde.

Zweitens: Die alte API unterstützte nur die Erweiterungen .xml und .jsonZurückgeben einer Antwort in diesen jeweiligen Formaten; .php wird von der alten API nicht unterstützt.

Um das Miniaturbild eines Videos zu erhalten, müssen Sie verwenden die neue APIoder ob das Video öffentlich ist und eingebettet werden kann oEinbetten. Unter Verwendung der Vimeo-PHP-Bibliothek würde eine Anfrage zum Abrufen der Metadaten eines Videos wie folgt aussehen:

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

Eine oEmbed-Anfrage würde so aussehen (ausgedrückt als curl, beachten Sie, dass die oEmbed-Implementierung von Vimeo nur zurückgibt json oder xml):

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

Viel Glück!

  • Diese API funktioniert immer noch, sie wird nicht zur Verwendung empfohlen, aber sie funktioniert auf jeden Fall immer noch gut, wenn Sie beispielsweise nur ein Miniaturbild erhalten möchten.

    – Joel Davey

    24. Februar um 12:41 Uhr


Der Vollständigkeit halber habe ich Vimeo kontaktiert und sie haben Folgendes geliefert, was perfekt zu funktionieren scheint:

$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;
}

Sie müssen ein Zugriffstoken in den Headern für eine API-Anforderung verwenden. Sie müssen auch die richtigen API-URLs verwenden.

Fang hier an: https://developer.vimeo.com/api/guides/start

  • Nicht wirklich, das oembed ist öffentlich

    – Urs

    24. März um 12:34 Uhr

  • Nun, er bat um eine API-Lösung. Nein, wenn du willst.

    – johnh10

    4. April um 20:33 Uhr

1136930cookie-checkSo erhalten Sie mit der neuen API ein Miniaturbild für Vimeo-Videos

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy