0

私のプロジェクトでは、ユーザーは別のサイトからURLを貼り付けてビデオをアップロードします。埋め込みを試しましたが、特定のサイト、YouTubeなどの埋め込みコードが提供されるため、正しく機能しません。このサイトhttp://www.myvidster.com/とまったく同じように実行したいと思います。cURL私はこれにコードを使ってみました:-

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $video_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_VERBOSE, true); // Display communication with server
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json_reply = curl_exec($ch);
curl_close($ch);

とのコードfile_get_contentsは次のとおりです。

$video_url = $_POST['video_url'];
$html = file_get_contents($video_url,true);

しかし、curlを使用すると、一部のサイトのHTML部分しか取得できませんでした。私は1週間試していますが、それでも結果がありません。すべてのサイトからビデオの埋め込みコードを取得することは可能ですか?または私は何か間違ったことをしていますか?

4

5 に答える 5

11

すべてのビデオストリーミングサイトでこれを行うための単一の一般的な方法はありません。すべてのサイトは少し異なり、すべてのサイトが埋め込みビューをサポートしているわけではありません。

于 2012-09-09T18:39:14.447 に答える
4

あなたはoembed標準を調べる必要があります

このプロトコルを使用すると、標準の統一された方法で、それをサポートする複数のビデオサイトから埋め込みコードを受け取ることができます。リンクをクリックして、oembedを実装しているサイトのリストを表示します

http://oembed.com/#section7

この標準をサポートしていない他のWebサイトの場合、通常、オープングラフプロトコル(meta og:...)を介して埋め込みコードをフェッチするか、各サイトのhtml解析ルールを記述して埋め込みを抽出できます。

于 2012-09-17T10:32:09.670 に答える
1

og:videoメタタグを取得してみてください。og:video:typeメタタグがapplication/x-shockwave-flash

その後、簡単に埋め込むことができます。完全に自動化された方法はありませんが、すべてのビデオWebサイトが同じ「標準」を共有しているわけではないため、特定のWebサイトに特定の方法を実装する必要がある場合があります。

于 2012-09-19T11:08:21.837 に答える
0

ビデオがブラウザで表示されるようにするには、ビデオを再エンコードする必要があります。そのための優れたコマンドラインソフトウェアはFFmpegです。最高は、それは無料です!

于 2012-09-09T18:36:58.050 に答える
0

私のサイトwww.youtubetutsite.comでも同様の問題に対処する必要がありました。私はYouTubeしか使っていませんでしたが。

myvidster.comを見ると、すべての動画が再生されるわけではありません。彼らがプレイできないのは、プロプライエタリサイトのプレイページへのリンクとして機能するスクリーンショットを持っていることです。

私のアプローチは、単一の埋め込みプレーヤーコードを使用することですが、選択範囲から一意のビデオIDを動的に挿入します。それが私のサイトのためにしたことです。

あなたがする必要があるのは、あなたのニーズに応じて(例としてのみ)、、などのフィールドを持つデータベースを用意することですVIDEO_ID。動画によっては、すべての動画で使用されているわけではないため、一部の選択肢が空白になる場合があります。VIDEO_LINKPLAYER_TO_USEOPTIONAL_URL

難しいのは、扱っているサイトから一意のビデオIDのみを取得することです(コードをターゲットにするために、ユーザーにアップロード元のサイトを選択させることができます)。YouTubeの場合、それはかなり単純です(つまり、http: //www.youtube.com/watch?v= HtPpaR3H8d8&feature = g-user-lss)が、他のすべてのサイトを調べて、それらがどのようにインデックス付けされているかを確認していません。

そこから、選択時に選択したビデオIDを使用して対応するプレーヤーをロードできます。これがあなたに役立つかどうかはわかりませんが、役立つことを願っています。

于 2012-09-16T19:09:46.020 に答える