8

我发现了类似的问题,但没有一个答案清楚而轻松地显示如何使用 jQuery 和 JSON 获取 vimeo 视频的缩略图。如果有人可以提供帮助,那就太好了,这就是我所拥有的,但目前没有任何显示。

var vimeoVideoID = '17631561';
var videoCallback = 'showThumb';

$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=' + videoCallback,

function(data){
$(".thumbs").attr('src',data[0].thumbnail_large);
});

提前致谢。

4

4 回答 4

36

我相信您遇到了“同源政策”问题。您应该考虑使用“ file_get_contents ”或“ fopen ”之类的东西编写服务器端脚本,使您能够从 vimeo 获取数据,将其转换为 json,并通过一个不错的 ajax 调用输出到您的 javascript。

如果您想避免使用服务器端脚本,您可以使用数据类型 JSONP。

var vimeoVideoID = '17631561';

$.getJSON('https://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', {format: "json"}, function(data) {
         $(".thumbs").attr('src', data[0].thumbnail_large);
});

请注意,该 URL 与您使用它的方式有些不同。您定义为 var 的回调是不必要的。您将 getJSON 直接附加到函数,因此您将在 url '?' 中调用'callback'。这会通知 getJSON 函数将成功的数据返回传递给提供的函数。

你可以在这里测试我的代码。希望能帮助到你!

于 2011-01-17T03:09:52.853 回答
4

使用更新的 API,它将是...

$.getJSON('https://vimeo.com/api/oembed.json?url=https://vimeo.com/' + id, {format: "json"}, function(data) {
  $(".thumbs").attr('src', data.thumbnail_url)
});
于 2020-01-29T16:42:06.313 回答
2

您可以使用支持所有类型的 Vimeo 链接和大小的此功能:

function get_vimeo_thumbnail(url, size, callback)
{
    var result;
    if(result = url.match(/vimeo\.com.*[\\\/](\d+)/))
    {
        var video_id   = result.pop();
        if(size == 'small'){
            var video_link = encodeURIComponent("https://vimeo.com/" + video_id + "?width=480&height=360");
            $.getJSON('https://vimeo.com/api/oembed.json?url=' + video_link, function(data) {
                if(data && data.thumbnail_url){
                    if (typeof(callback) !== 'undefined') {
                        callback(data.thumbnail_url);
                    }
                }
            });
        }
        else
        {
            $.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json', function(data) {
                if(data){
                    if (typeof(callback) !== 'undefined') {
                        var thumbnail_src = data[0].thumbnail_large;
                        if(thumbnail_src){
                            callback(thumbnail_src);
                        }
                    }
                }
            });
        }
    }
}

要使用它:

// Available sizes: large, small
get_vimeo_thumbnail('https://vimeo.com/475772381', 'large' function(url){
   alert(url)
})
于 2020-12-24T05:00:27.423 回答
1

请查看此页面;Vimeo 有一个新的方法调用oEmbed,因为 Vimeo 现在正在推动它的新 oEmbed 技术。

上面的方法在 IE 上会失败(不会显示拇指)。

于 2017-03-17T11:34:25.783 回答