這是視頻和下載網站上常見的事情。爲了防止簡單的直接鏈接或熱鏈接,它們在用戶與頁面,視頻播放器或CAPTCHA交互之後爲主數據生成唯一的URL。這就是您的網址的sig
和time
部分。這種生成的URL通常通過IP地址綁定到用戶,並在一段時間後過期。
要傳遞該類型的內容,您必須解密用於生成視頻URL的步驟。這通常與請求HTML頁面一樣簡單,然後在Flash小程序參數或腳本標記中查找URL。其他網站在複雜的客戶端腳本或Flash小程序中生成URL。
我快速查看了Vimeo並找出瞭如何獲取URL,它似乎工作正常。試試這個:
$clipId = 24195442;
ini_set('user_agent', 'Mozilla/5.0 (Windows NT 6.1; rv:10.0.9) Gecko/20100101 Firefox/10.0.9');
$config = json_decode(file_get_contents('http://player.vimeo.com/config/' . $clipId));
$videoUrl = 'http://player.vimeo.com/play_redirect?clip_id=' . $clipId .
'&sig=' . $config->request->signature .
'&time=' . $config->request->timestamp;
header('Content-Type: application/octet-stream');
readfile($videoUrl);
是你必須設置User-Agent字符串。當Vimeo看起來不像真正的瀏覽器時,Vimeo拒絕了它。
我不知道是否有一個Vimeo的API,它說,這是應該工作。要警告的是,只要Vimeo不改變他們的網站結構,它可能只會工作。如果可能的話,最可靠的做法是保存或緩存視頻文件,並從您自己的服務器本地提供。
我沒有花太多時間看這個,但你確定vimeo沒有做一些neato驗證,你不是代理(你在這種情況下)。我曾經經營一個網站,並且人們使用我的服務來代理我們的圖片和視頻,所以我添加了檢查(使用cookie)以確保他們無法做到這一點... vimeo可能有更好的方法來阻止你做這種類型的內容偷竊。 – belial
URL http://player.vimeo.com/play_redirect?clip_id=24195442&sig=49daac0ff885745c27601a80402bba14&time=1351783454&quality=hd&codecs=H264&type=moogaloop_local&embed_location=也會返回Permission denied ..您爲什麼期待另一個結果? – Baba