これは動画サイトやダウンロードサイトではよくあることです。些細な直接リンクやホットリンクを防ぐために、ユーザーがページ、ビデオ プレーヤー、または CAPTCHA を操作した後、メイン データの一意の URL を生成します。それが、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 API があるかどうかはわかりません。Vimeo がサイト構造を変更しない限り、機能しない可能性があることに注意してください。最も信頼できる方法は、動画ファイルを保存またはキャッシュし、可能であれば自分のサーバーからローカルに配信することです。