Vimeo API用虚荣网址获取视频?

时间:2013-01-28 23:29:11

标签: api vimeo

是否有人知道如何从Vimeo的api获取虚拟/自定义网址的回复,如下所示:

http://vimeo.com/jarominne/regarde-moihttp://vimeo.com/davidfield/caterpillar

视频ID的标准Api请求无效。

不起作用: https://vimeo.com/api/v2/video/regarde-moi.json

作品 https://vimeo.com/api/v2/video/58086788.json

我没有看到任何有意义的内容,也不是他们文档中明确的解决方案。我不关心语言。

1 个答案:

答案 0 :(得分:0)

FWIW,这是一个糟糕的php解决方案,我在问这个问题后不久就想到了。

非常欢迎改进!

基本上,如果我们没有视频ID(数字值),则假设我们的ID是视频标题。使用网址中的用户名获取用户数据并获取所有视频。循环浏览这些视频并尝试将标题与我们的“视频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;
}