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.

24voto

Michel Barbosa Punkte 231

Mit Ruby kannst du Folgendes tun, wenn du z.B. hast:

url                      = "http://www.vimeo.com/7592893"
vimeo_video_id           = url.scan(/vimeo.com\/(\d+)\/?/).flatten.to_s               # extrahiere die Video-ID
vimeo_video_json_url     = "http://vimeo.com/api/v2/video/%s.json" % vimeo_video_id   # API-Aufruf

# Analysiere das JSON und extrahiere die URL des großen Thumbnails
thumbnail_image_location = JSON.parse(open(vimeo_video_json_url).read).first['thumbnail_large'] rescue nil

2 Stimmen

Hinweis: Möglicherweise benötigen Sie require 'open-uri', um open zu ermöglichen, URIs sowie Dateien zu analysieren.

0 Stimmen

Ich musste url.scan(/vimeo.com\/(\d+)\/?/).flatten.to_s.delete("^0-9.") hinzufügen, um die Vimeo-ID zu erhalten.

0 Stimmen

Require "open-uri" require 'json' thumbnail_image_location = JSON.parse(URI.open("vimeo.com/api/v2/video/…

22voto

Mtblewis Punkte 403

Hier ist ein Beispiel, wie man dasselbe in ASP.NET mit C# machen kann. Fühlen Sie sich frei, ein anderes Fehlerbild zu verwenden :)

public string GetVimeoPreviewImage(string vimeoURL)
{
    try
    {
        string vimeoUrl = System.Web.HttpContext.Current.Server.HtmlEncode(vimeoURL);
        int pos = vimeoUrl.LastIndexOf(".com");
        string videoID = vimeoUrl.Substring(pos + 4, 8);

        XmlDocument doc = new XmlDocument();
        doc.Load("http://vimeo.com/api/v2/video/" + videoID + ".xml");
        XmlElement root = doc.DocumentElement;
        string vimeoThumb = root.FirstChild.SelectSingleNode("thumbnail_medium").ChildNodes[0].Value;
        string imageURL = vimeoThumb;
        return imageURL;
    }
    catch
    {
        //Katze mit Käse im Gesicht scheitern
        return "http://bestofepicfail.com/wp-content/uploads/2008/08/cheese_fail.jpg";
    }
}

HINWEIS: Ihre API-Anfrage sollte so aussehen, wenn sie angefordert wird: http://vimeo.com/api/v2/video/32660708.xml

0 Stimmen

Schön, aber der API-Link ist nur vimeo.com/api/v2/video/video_id.xml und nicht "video" vor der Video-ID.

0 Stimmen

Kürzte diesen Code ab und änderte den Parameter so, dass er eine Vimeo-ID anstatt der vollständigen URL akzeptiert. (kann nicht herausfinden, wie der Codeblock mehrzeilig wird) public static string GetVimeoPreviewImage(string id) { try { XmlDocument doc = new XmlDocument(); doc.Load("http://vimeo.com/api/v2/video/" + id + ".xml"); return doc.DocumentElement.FirstChild.SelectSingleNode("thumbnail_m‌​edium").ChildNodes[0‌​].Value; } catch { return string.Empty; } }

20voto

Roy Shoa Punkte 2957

Der einfachste Weg in JavaScript, den ich gefunden habe, um das Vorschaubild ohne die Suche nach der Video-ID zu erhalten, ist folgender:

//Holen Sie das Video-Vorschaubild über Ajax
$.ajax({
    type:'GET',
    url: 'https://vimeo.com/api/oembed.json?url=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
        console.log(data.thumbnail_url);
    }
});

Hinweis: Wenn jemand das Vorschaubild des Videos anhand der Video-ID erhalten möchte, kann er das $id durch die Video-ID ersetzen und eine XML-Datei mit den Videodetails erhalten:

http://vimeo.com/api/v2/video/$id.xml

Beispiel:

http://vimeo.com/api/v2/video/198340486.xml

Quelle

3 Stimmen

Dies ist wirklich die beste Antwort, da Vimeo die v2 API eingestellt hat. oEmbed erfordert keine Authentifizierung und liefert eine JSON/XML-Antwort mit Thumbnail-Urls zurück. developer.vimeo.com/apis/oembed

1 Stimmen

Roy, wie verwenden wir diesen AJAX-Aufruf, wenn wir nach einem bestimmten Video nach seiner ID suchen?

0 Stimmen

@blackhawk Ich nicht, aber ich google es jetzt und habe etwas für dich gefunden, ersetze einfach die video_id durch dein $id und du erhältst ein XML mit den Video-Details (einschließlich Thumbnails). http://vimeo.com/api/v2/video/$id.xml. zum Beispiel: http://vimeo.com/api/v2/video/198340486.xml. Die Quelle ist hier: coderwall.com/p/fdrdmg/get-a-thumbnail-from-a-vimeo-video

14voto

Israel Morales Punkte 1551

Ich habe einen CodePen erstellt, der die Bilder für dich abruft.

https://codepen.io/isramv/pen/gOpabXg

HTML

Video abrufen

JavaScript:

const videoIdInput = document.getElementById('vimeoid');
const getVideo = document.getElementById('getVideo');
const output = document.getElementById('output');

function getVideoThumbnails(videoid) {
  fetch(`https://vimeo.com/api/v2/video/${videoid}.json`)
  .then(response => {
    return response.text();
  })
  .then(data => {
    const { thumbnail_large, thumbnail_medium, thumbnail_small } = JSON.parse(data)[0];
    const small = ``;
    const medium = ``;
    const large = ``;
    output.innerHTML = small + medium + large;
  })
  .catch(error => {
    console.log(error);
  });
}

getVideo.addEventListener('click', e => {
  if (!isNaN(videoIdInput.value)) {
    getVideoThumbnails(videoIdInput.value);
  }
});

Bildbeschreibung hier eingeben

13voto

alphapilgrim Punkte 3563

Wenn Sie Miniaturbilder durch reinen JS/jQuery ohne API verwenden möchten, können Sie dieses Tool verwenden, um einen Frame aus dem Video zu erfassen und voilà! Fügen Sie die URL des Miniaturbilds in die gewünschte Quelle ein.

Hier ist ein Code-Pen:

http://codepen.io/alphalink/pen/epwZpJ

Hier ist die Website, um ein Miniaturbild zu erhalten:

http://video.depone.eu/

1 Stimmen

@blackhawk Site ist wieder online.

1 Stimmen

Es sieht so aus, als würde dies einen zufälligen Rahmen anzeigen und nicht das offizielle Cover/Thumbnail, das der Videokreator ausgewählt hat. Gut zu wissen, dass dies existiert, aber ich glaube, ich werde die API-JSON-Analysemethode verwenden, da es keine Kontrolle über das Coverbild von der Vimeo-Seite aus gibt.

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