FWIW,这是一个糟糕的 php 解决方案,我在提出这个问题后不久就想到了。
非常欢迎改进!
本质上,如果我们没有视频 id(一个数值),假设我们的 id 是视频标题。使用 URL 中的用户名获取我们的用户数据并获取他们所有的视频。循环播放这些视频并尝试将标题与我们的“视频 ID”(在上面的例子中实际上是视频标题)匹配。
** 假设 $this->id = 您的视频 ID 或视频用户名 ** 假设 $this->user = 您的 vimeo 用户名
public $apis = array(
'vimeo_image' => 'http://vimeo.com/api/v2/video/%s.json',
'vimeo_user' => 'http://vimeo.com/api/v2/user/%s/videos.json'
);
public function vimeoThumbnail($size = 'small')
{
if(preg_match('/[0-9]+/', $this->id)) {
$video_id = $this->id;
} else {
$videos = file_get_contents(sprintf($this->apis['vimeo_user'], $this->video->user));
if($videos !== false) {
$videos = json_decode($videos);
foreach($videos as $video) {
if(stristr($video->title, $this->id)) {
$video_id = $video->id;
break;
}
}
}
}
$contents = file_get_contents(sprintf($this->apis['vimeo_image'], $video_id));
if($contents !== false) {
$contents = json_decode($contents);
if(is_array($contents)) $contents = array_shift($contents);
if(!is_object($contents)) return false;
$image_url = $contents->{'thumbnail_' . $size};
return $image_url;
}
return false;
}