如何获取vimeo视频的长度?

时间:2011-10-14 19:49:26

标签: php javascript vimeo

我遇到了一个大问题。问题是如何获得vimeo视频的持续时间?这是场景。

  

我在这个字段中有一个输入字段说我现在输入你想要的youtube url   验证视频应该只有1分钟,如果是,那么我   将其存储在数据库中,否则我会显示错误消息。

是否有可能为vimeo视频文件做这件事?

4 个答案:

答案 0 :(得分:4)

<强>用法

echo vimeoVideoDuration('https://vimeo.com/115134273');
// output: 63 (video duration in seconds)

<强>功能

/**
* Vimeo video duration in seconds
*
* @param $video_url
* @return integer|null Duration in seconds or null on error
*/
function vimeoVideoDuration($video_url) {

   $video_id = (int)substr(parse_url($video_url, PHP_URL_PATH), 1);

   $json_url = 'http://vimeo.com/api/v2/video/' . $video_id . '.xml';

   $ch = curl_init($json_url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   $data = curl_exec($ch);
   curl_close($ch);
   $data = new SimpleXmlElement($data, LIBXML_NOCDATA);

   if (!isset($data->video->duration)) {
       return null;
   }

   $duration = $data->video->duration;

   return $duration; // in seconds
}

答案 1 :(得分:3)

是的,事实上它在Simple API

http://vimeo.com/api/docs/simple-api

  

持续时间视频的持续时间(以秒为单位)

答案 2 :(得分:2)

根据视频的不同,您可能需要进行身份验证。 这是我做过的代码:

public function getVimeoVideoDuration($vimeoId)
    {
        $authorization = 'myaccesstoken';
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://api.vimeo.com/videos/{$vimeoId}",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "GET",
            CURLOPT_HTTPHEADER => array(
                "authorization: Bearer {$authorization}",
                "cache-control: no-cache",
            ),
        ));

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

        curl_close($curl);
        if (empty($err)) {
            $info = json_decode($response);
            if(isset($info->duration)){
                return (int)$info->duration;
            }
        }
        return false;
    }

可以请求授权码here

答案 3 :(得分:0)

Vimeo现在有一个新的API,请点击此处: vimeo api

你所需要的只是:
1.在此https://developer.vimeo.com/apps下,在您的vimeo帐户下创建一个应用程序 2.获取vimeo app的client_id,client_secret,client_token;
3.使用其中一个官方lib(php,python,node):https://github.com/vimeo

这很容易,但不要忘记优化我们的API调用,因为这里说因为vimeo api有一个速率限制: https://developer.vimeo.com/api/common-formats#json-filter