Как узнать длину видео vimeo? - PullRequest
2 голосов
/ 14 октября 2011

У меня большая проблема. Проблема в том, как получить продолжительность видео Vimeo? Вот сценарий.

У меня есть поле ввода в этом поле, скажите, что я ввожу URL-адрес YouTube, теперь я хочу поставить подтверждение, что видео должно быть только 1 минуты, если да, то я сохранить это в базе данных, иначе я покажу сообщение об ошибке.

возможно ли сделать это для видеофайлов vimeo?

Ответы [ 4 ]

5 голосов
/ 04 июня 2015

Использование

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
}
3 голосов
/ 14 октября 2011

Да, по сути, это их Simple API

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

длительность Продолжительность видео в секундах

2 голосов
/ 30 июля 2016

В зависимости от видео вам может потребоваться пройти аутентификацию.Вот код, который я сделал:

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;
    }

Код авторизации можно запросить здесь .

0 голосов
/ 16 июня 2017

Vimeo теперь имеет новый API, проверьте здесь: Vimeo API

и все что вам нужно это:
1. Создайте приложение под своей учетной записью Vimeo здесь https://developer.vimeo.com/apps
2. получите ваш client_id, client_secret, client_token вашего приложения vimeo;
3. использовать одну из этих официальных библиотек (php, python, node): https://github.com/vimeo

это очень легко, но не забывайте оптимизировать наш вызов API, как здесь сказано, потому что vimeo api имеет ограничение скорости: https://developer.vimeo.com/api/common-formats#json-filter

...