Получить прямые ссылки видео с Vimeo в PHP

Я хочу прямую ссылку на видео с Vimeo с помощью скрипта PHP. Мне удалось найти их вручную, но мой PHP-скрипт не работает. Вот эта инициатива: Например я взял это видео:http://vimeo.com/22439234

Когда вы переходите на страницу, Vimeo генерирует подпись, связанную с текущей меткой времени и этим видео. Эта информация хранится в переменной JavaScript около строки 520 сразу после: window.addEvent ('domready', function () {

Затем, когда вы нажимаете Play, проигрыватель HTML5 читает эту переменную и отправляет HTTP-запрос:

http:// player.vimeo.com/play_redirect?clip_id=37111719&sig={SIGNATURE}&time={TIMESTAMP}&quality=sd&codecs=H264,VP8,VP6&type=moogaloop_local&embed_location=

Но это также работает с:

http:// player.vimeo.com/play_redirect?clip_id=37111719&sig={SIGNATURE}&time={TIMESTAMP}&quality=sd

Если этот URL не открывается с IP-адресом, который открылсяhttp://vimeo.com/22439234это возвращает HTTP-код 200 с сообщением об ошибке.

Если этот URL открывается с правильным IP-адресом, заголовок & quot; Местоположение & quot; перенаправляет ссылку на видео файл: http://av.vimeo.com/XXX/XX/XXXX.mp4?aksessionid=XXXX&token=XXXXX_XXXXXXXXX

Когда я строю эту ссылкуhttp://player.vimeo.com/play_redirect?... вручную («щелкнуть правой кнопкой мыши», «gt;« исходный код »,« строка 520 ») это работает.

Но с PHP и регулярным выражением он возвращаетHTTP code 200 с сообщением об ошибке.

Зачем ?

Из моих наблюдений Vimeo не проверяет заголовки HTTP-запроса наhttp:// player.vimeo.com/play_redirect?... GET, HEAD, с куки, без куки, реферера и т.д. ... не меняется.

С PHP я использую функциюfile_get_contents() а такжеget_headers().

    <?php
    function getVimeo($id) {

    $content = file_get_contents('http://vimeo.com/'.$id);

    if (preg_match('#document\.getElementById\(\'player_(.+)\n#i', $content, $scriptBlock) == 0)
        return 1;

    preg_match('#"timestamp":([0-9]+)#i', $scriptBlock[1], $matches);
    $timestamp = $matches[1];
    preg_match('#"signature":"([a-z0-9]+)"#i', $scriptBlock[1], $matches);
    $signature = $matches[1];

    $url = 'http://player.vimeo.com/play_redirect?clip_id='.$id.'&sig='.$signature.'&time='.$timestamp.'&quality=sd';

    print_r(get_headers($url, 1));
    }

Ответы на вопрос(2)

Ваш ответ на вопрос