Ich möchte ein Vorschaubild für Videos von Vimeo erhalten.
Wenn ich Bilder von Youtube bekomme, mache ich einfach folgendes:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
Irgendwelche Ideen, wie man das für Vimeo macht?
Ich möchte ein Vorschaubild für Videos von Vimeo erhalten.
Wenn ich Bilder von Youtube bekomme, mache ich einfach folgendes:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
Irgendwelche Ideen, wie man das für Vimeo macht?
Wenn Sie keine automatisierte Lösung benötigen, können Sie die Thumbnail-URL finden, indem Sie die Vimeo-ID hier eingeben: http://video.depone.eu/
Eigentlich hat der Typ, der die Frage gestellt hat, seine eigene Antwort gepostet.
"Vimeo möchte anscheinend, dass ich einen HTTP-Request mache und die Thumbnail-URL aus dem XML extrahiere, das sie zurückgeben..."
Die Vimeo API-Dokumentation finden Sie hier: http://vimeo.com/api/docs/simple-api
Kurz gesagt muss Ihre App eine GET-Anfrage an eine URL wie die folgende senden:
http://vimeo.com/api/v2/video/video_id.output
und die zurückgegebenen Daten analysieren, um die von Ihnen benötigte Thumbnail-URL zu erhalten, und dann die Datei unter dieser URL herunterladen.
function getVimeoInfo($link)
{
if (preg_match('~^http://(?:www\.)?vimeo\.com/(?:clip:)?(\d+)~', $link, $match))
{
$id = $match[1];
}
else
{
$id = substr($link,10,strlen($link));
}
if (!function_exists('curl_init')) die('CURL ist nicht installiert!');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = unserialize(curl_exec($ch));
$output = $output[0];
curl_close($ch);
return $output;
}`
//an untenstehende Funktion wird die Vorschaubild-URL übergeben.
function save_image_local($thumbnail_url)
{
//um das Bild auf dem lokalen Server zu speichern
$filename = time().'_hbk.jpg';
$fullpath = '../../app/webroot/img/videos/image/'.$filename;
file_put_contents ($fullpath,file_get_contents($thumbnail_url));
return $filename;
}
AKTUALISIERUNG: Diese Lösung hat ab Dez 2018 nicht mehr funktioniert.
Ich habe nach dem gleichen gesucht, und es scheint, dass die meisten hier gegebenen Antworten aufgrund der Veraltetheit der Vimeo API V2 veraltet sind.
mein 2 Cent in PHP:
$vidID = 12345 // Vimeo Video ID
$tnLink = json_decode(file_get_contents('https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/' . $vidID))->thumbnail_url;
mit dem obigen Code erhalten Sie den Link zum Standard-Vorschaubild von Vimeo.
Wenn Sie ein Bild in einer anderen Größe verwenden möchten, können Sie etwas wie folgt hinzufügen:
$tnLink = substr($tnLink, strrpos($tnLink, '/') + 1);
$tnLink = substr($tnLink, 0, strrpos($tnLink, '_')); // Jetzt haben Sie die Thumbnail-ID, die sich von der Video-ID unterscheidet
// Und Sie können sie mit einem Link zu einer der von Vimeo verkleinerten Vorschaubildergrößen verwenden, zum Beispiel:
$tnLink = 'https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F' . $tnLink . '_1280x720.jpg&src1=https%3A%2F%2Ff.vimeocdn.com%2Fimages_v6%2Fshare%2Fplay_icon_overlay.png';
Ich habe eine Funktion in PHP geschrieben, um dies zu ermöglichen, ich hoffe, dass sie für jemanden nützlich ist. Der Pfad zum Thumbnail ist in einem Link-Tag auf der Videoseite enthalten. Das scheint für mich zu funktionieren.
$video_url = "http://vimeo.com/7811853"
$file = fopen($video_url, "r");
$filedata = stream_get_contents($file);
$html_content = strpos($filedata,"
`
Ich hoffe, dass es jemandem hilft.
Foggson
`
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
16 Stimmen
Ja, es ist legal - beide Websites stellen diese Details auf sehr öffentliche Weise zur Verfügung, weil sie möchten, dass Sie ihren Inhalt verwenden! Alle eingebetteten Videos verlinken schließlich auf die Hosting-Site zurück.
1 Stimmen
Wenn Sie sicherstellen möchten, dass Ihre Seite nicht auf den Vimeo-Server angewiesen ist und die Leistung optimiert ist, schlage ich vor, dies in JavaScript zu tun. Der Nachteil ist, dass der Daumen für Benutzer ohne JavaScript nicht angezeigt wird, aber ein geeigneter Platzhalter mit dem Link sollte freundlich genug sein. (Ändern Sie .xml in .json in Ihrer API-Anfrage an Vimeo)
1 Stimmen
Versuche diese Antwort: stackoverflow.com/a/17156853/146602 - macht es sehr einfach, Informationen/Daten über ein beliebiges Vimeo-Video nur mit der URL zu erhalten.
2 Stimmen
i.vimeocdn.com/video/528073804_200x200.webp auf diese Weise können Sie das Video-Bild erhalten
0 Stimmen
@Pus ist es möglich, dass wir ohne den Aufruf der API das Vorschaubild des Vimeo-Videos erhalten können? Bedeutet das, dass wir eine URL haben können, an die wir nur die ID übergeben und es wird ein .jpg Thumbnail zurückgeben. Wenn ich das so mache
http://i.vimeocdn.com/video/201990344.webp
, dann wird ein falsches Thumbnail zurückgegeben. Das ist der Link zu meinem Testvideohttps://vimeo.com/201990344
0 Stimmen
@shaileshs Lösung funktioniert nicht mehr.