我正在尝试使用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'];
这总是重播一种致命错误。
在实现此目标的最佳方法方面的任何帮助将不胜感激!
答案 0 :(得分:0)
对于API请求,您需要在标头中使用访问令牌。您还需要使用正确的API网址。
答案 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实现将仅返回json
或xml
):
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;
}