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?
Dies ist eine schnelle und clevere Möglichkeit, es zu tun, und auch eine Möglichkeit, eine benutzerdefinierte Größe auszuwählen.
Ich gehe hierhin:
http://vimeo.com/api/v2/video/[VIDEO-ID].php
Laden Sie die Datei herunter, öffnen Sie sie und finden Sie das 640 Pixel breite Thumbnail, es wird ein Format wie folgt haben:
https://i.vimeocdn.com/video/[LANGE NUMMER HIER]_640.jpg
Sie nehmen den Link, ersetzen die 640 durch - zum Beispiel - 1400, und Sie erhalten etwas wie dies:
https://i.vimeocdn.com/video/[LANGE NUMMER HIER]_1400.jpg
Fügen Sie ihn in die Suchleiste Ihres Browsers ein und genießen Sie es.
Prost,
Ich habe es gerade mit vimeo.com/api/v2/video/193641463.php, i.vimeocdn.com/video/605393384_640.jpg, i.vimeocdn.com/video/605393384_2000.jpg versucht und es funktioniert. Prost,
Verwenden Sie die Vimeo-URL(https://player.vimeo.com/video/30572181), hier ist mein Beispiel
Vimeo
$(document).ready(function () {
var vimeoVideoUrl = 'https://player.vimeo.com/video/30572181';
var match = /vimeo.*\/(\d+)/i.exec(vimeoVideoUrl);
if (match) {
var vimeoVideoID = match[1];
$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', { format: "json" }, function (data) {
featuredImg = data[0].thumbnail_large;
$('#thumbImg').attr("src", featuredImg);
});
}
});
Es sieht so aus, als ob api/v2 tot ist.
Um die neue API zu verwenden, müssen Sie Ihre Anwendung registrieren und die client_id
und client_secret
als Autorisierungsheader base64-codieren.
$.ajax({
type:'GET',
url: 'https://api.vimeo.com/videos/' + video_id,
dataType: 'json',
headers: {
'Authorization': 'Basic ' + window.btoa(client_id + ":" + client_secret);
},
success: function(data) {
var thumbnail_src = data.pictures.sizes[2].link;
$('#thumbImg').attr('src', thumbnail_src);
}
});
Zu Sicherheitszwecken können Sie die bereits von dem Server codierte client_id
und client_secret
zurückgeben.
function parseVideo(url) {
// - Unterstützte YouTube-URL-Formate:
// - http://www.youtube.com/watch?v=My2FRPA3Gf8
// - http://youtu.be/My2FRPA3Gf8
// - https://youtube.googleapis.com/v/My2FRPA3Gf8
// - Unterstützte Vimeo-URL-Formate:
// - http://vimeo.com/25451551
// - http://player.vimeo.com/video/25451551
// - Unterstützt auch relative URLs:
// - //player.vimeo.com/video/25451551
url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
if (RegExp.$3.indexOf('youtu') > -1) {
var type = 'youtube';
} else if (RegExp.$3.indexOf('vimeo') > -1) {
var type = 'vimeo';
}
return {
type: type,
id: RegExp.$6
};
}
function getVideoThumbnail(url, cb) {
var videoObj = parseVideo(url);
if (videoObj.type == 'youtube') {
cb('//img.youtube.com/vi/' + videoObj.id + '/maxresdefault.jpg');
} else if (videoObj.type == 'vimeo') {
$.get('http://vimeo.com/api/v2/video/' + videoObj.id + '.json', function(data) {
cb(data[0].thumbnail_large);
});
}
}
Die Antwort von Karthikeyan P. wird so umstrukturiert, dass sie in einer breiteren Palette von Szenarien verwendet werden kann:
// Benötigt jQuery
function parseVimeoIdFromUrl(vimeoUrl) {
var match = /vimeo.*\/(\d+)/i.exec(vimeoUrl);
if (match)
return match[1];
return null;
};
function getVimeoThumbUrl(vimeoId) {
var deferred = $.Deferred();
$.ajax(
'//www.vimeo.com/api/v2/video/' + vimeoId + '.json',
{
dataType: 'jsonp',
cache: true
}
)
.done(function (data) {
// .thumbnail_small 100x75
// .thumbnail_medium 200x150
// 640 wide
var img = data[0].thumbnail_large;
deferred.resolve(img);
})
.fail(function(a, b, c) {
deferred.reject(a, b, c);
});
return deferred;
};
Holen Sie sich eine Vimeo-ID von einer Vimeo-Video-URL:
var vimeoId = parseVimeoIdFromUrl(vimeoUrl);
Holen Sie sich eine Vimeo-Vorschaubild-URL von einer Vimeo-ID:
getVimeoThumbUrl(vimeoIds[0])
.done(function(img) {
$('div').append('');
});
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.