340 Stimmen

Bekommen Sie Miniaturansichten von Vimeo?

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?

Hier ist dieselbe Frage, ohne Antwort.

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.

385voto

Fluffy Punkte 26266

Vom Vimeo Simple API-Dokumentation:

Eine Videoanfrage erstellen

Um Daten über ein bestimmtes Video zu erhalten, verwenden Sie die folgende URL:

http://vimeo.com/api/v2/video/video_id.output

video_id Die ID des Videos, für das Sie Informationen wünschen.

output Geben Sie den Ausgabetyp an. Wir bieten derzeit JSON, PHP und XML-Formate an.

Also, um diese URL zu erhalten http://vimeo.com/api/v2/video/6271487.xml

        [übersprungen]
        http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_100.jpg 
        http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_200.jpg 
        http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_640.jpg 
        [übersprungen]

Analysieren Sie dies für jedes Video, um das Vorschaubild zu erhalten

Hier ist ungefährer Code in PHP

0 Stimmen

OK, schön. Ich bin jedoch nicht vertraut mit xml. Wie kann ich thumbnail_small mit php erhalten?

0 Stimmen

Um es mit PHP zu erhalten, verwenden Sie zunächst die PHP-Erweiterung in der URL wie vimeo.com/api/v2/video/6271487.php, Sie erhalten eine Datei, deren erste Zeile anscheinend ein serialisierter PHP-Hash ist, verwenden Sie unserialize und lesen Sie dann einfach die Einträge, die Sie möchten.

0 Stimmen

Echo $hash[0]['Thumbnail_medium'];

79voto

Sam Carlton Punkte 1201

Für diejenigen, die immer noch einen Weg suchen, das Miniaturbild nur über die URL zu erhalten, ähnlich wie bei Youtube, habe ich eine kleine Anwendung gebaut, die es nur mit der Vimeo-ID abruft.

https://vumbnail.com/358629078.jpg

Stecken Sie einfach Ihre Video-ID ein und es wird es ziehen und für 28 Tage zwischenspeichern, damit es schnell geliefert wird.

Hier sind ein paar Beispiele in HTML:

Einfaches Bildbeispiel

Modernes responsives Bildbeispiel

Wenn Sie Ihre eigene Instanz starten möchten, können Sie dies hier tun.

Repo

5 Stimmen

Dies ist das, was ich will!

5 Stimmen

Dies ist großartig, danke fürs Teilen!

2 Stimmen

Eine Notiz: Wenn Sie feststellen, dass dies nicht für Ihr Video funktioniert, kann es älter sein und eine kürzere ID-Nummer haben! Fügen Sie Nullen voran, bis sie mindestens 8-stellig wird. Beispiel: Id 123456 wird nicht funktionieren, aber Id 00123456 wird.

65voto

Natim Punkte 16149

Im JavaScript (verwendet jQuery):

function vimeoLoadingThumb(id){    
    var url = "http://vimeo.com/api/v2/video/" + id + ".json?callback=showThumb";

    var id_img = "#vimeo-" + id;

    var script = document.createElement( 'script' );
    script.src = url;

    $(id_img).before(script);
}

function showThumb(data){
    var id_img = "#vimeo-" + data[0].id;
    $(id_img).attr('src',data[0].thumbnail_medium);
}

Um es anzuzeigen :

  vimeoLoadingThumb({{ video.id_video }});

0 Stimmen

Vielen Dank dafür, sehr hilfreich. Ich glaube, es gibt einen sehr kleinen Tippfehler. Sie verwenden # in den id_img Variablen, haben aber das # im img-Element id nicht. Geht Ihr Beispiel auch von der Verwendung von jQuery aus? Ich habe $(id_img) .before und $(id_img) .attr gegen createElement und ein grundlegenderes getElementById(id_img) .src ausgetauscht, hätte es aber überhaupt nicht verstanden, wenn es nicht Ihr Beispiel gewesen wäre.

3 Stimmen

Die # Frage ist die JQuery-Syntax, kein Fehler. Ja, es geht von der Verwendung von JQuery aus.

0 Stimmen

Ah, gut dann. Danke für die Klarstellung. Ich benutze nicht oft JQuery, aber die Antwort war trotzdem sehr nützlich für mich.

55voto

Erdal G. Punkte 2203

Sie sollten die API-Antwort von Vimeo analysieren. Es gibt keinen Weg, dies mit URL-Aufrufen zu tun (wie bei Dailymotion oder Youtube).

Hier ist meine PHP-Lösung:

/**
 * Ruft eine Vorschaubild-URL von Vimeo ab
 * @param mixed $id Eine Vimeo-ID (z. B. 1185346)
 * @return Vorschaubild-URL
*/
function getVimeoThumb($id) {
    $data = file_get_contents("http://vimeo.com/api/v2/video/$id.json");
    $data = json_decode($data);
    return $data[0]->thumbnail_medium;
}

5 Stimmen

Vielen Dank dafür. Dies war meine Lieblingslösung.

45voto

elatonsev Punkte 669

Verwendung der jQuery jsonp-Anforderung:

    $.ajax({
        type:'GET',
        url: 'http://vimeo.com/api/v2/video/' + video_id + '.json',
        jsonp: 'callback',
        dataType: 'jsonp',
        success: function(data){
            var thumbnail_src = data[0].thumbnail_large;
            $('#thumb_wrapper').append('<img src="' + thumbnail_src + '"/>');
        }
    });

1 Stimmen

Ich würde dies gerne verwenden ... aber was ist, wenn ich mehrere Videos auf einer Seite habe? Gibt es eine Möglichkeit, die ID an den Aufruf zu übergeben? Am besten würde ich gerne etwas wieverwenden - und das würde mit dem Thumbnail-Bild gefüllt werden.

4 Stimmen

Die Methodenaufruf kann verkürzt werden wie $.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...

0 Stimmen

Funktioniert diese Methode noch? Wir haben Probleme damit im Jahr 2021. siehe stackoverflow.com/questions/66053587/vimeo-api-jsonp-issue

CodeJaeger.com

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.

Powered by:

X