如何使用新的API获取Vimeo视频的缩略图

时间:2019-07-15 10:14:33

标签: php wordpress vimeo vimeo-api

我正在尝试使用PHP为嵌入在我的wordpress网站上的Vimeo视频输出图像缩略图。 Vimeo视频具有域级别的隐私。

似乎Vimeo已经更新了他们的API,因为几年前我尝试过在这里发布的其他答案中的建议,但是这些都不起作用。我浏览了他们的新API,似乎无法理解。

具体地说,我已经尝试了一些变体:

<?php
$imgid = 6271487;
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
echo $hash[0]['thumbnail_medium'];  

这总是重播一种致命错误。

在实现此目标的最佳方法方面的任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

对于API请求,您需要在标头中使用访问令牌。您还需要使用正确的API网址。

从这里开始:https://developer.vimeo.com/api/guides/start

答案 1 :(得分:0)

几件事:首先,已经弃用了路径为/api/v2/video/的API,并于几年前发布了“新” API。

第二:旧的API仅支持扩展名.xml.json,以相应的格式返回响应;旧的API不支持.php

要获取视频的缩略图,您需要使用the new API,或者如果视频是公开的且可嵌入的,请使用oEmbed。使用Vimeo PHP库,获取视频元数据的请求将如下所示:

$videoId = '6271487';
$response = $client->request('/videos/'+$videoId+'/pictures', array(), 'GET');
print_r($response);

oEmbed请求将如下所示(表示为curl,请注意,Vimeo的oEmbed实现将仅返回jsonxml):

curl -X GET 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/6271487'

祝你好运!

答案 2 :(得分:0)

为完整起见,我联系了Vimeo,他们提供了以下内容,它们似乎运行得很好:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vimeo.com/api/oembed.json?url=https://vimeo.com/VIDEO_ID",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "Referer: REFERER_URL"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}