1

次のようなバニティ/カスタムURLのVimeoのAPIから応答を取得する方法を知っている人はいますか?

http://vimeo.com/jarominne/regarde-moiまたはhttp://vimeo.com/davidfield/caterpillar

ビデオ ID の標準 API リクエストが機能しません。

動作しません: https://vimeo.com/api/v2/video/regarde-moi.json

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

彼らのドキュメントには、意味のあるものや明確な解決策があるものは何もありません。私は言語を気にしません。

4

1 に答える 1

0

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;
}
于 2013-01-29T01:35:13.080 に答える