0

私のアプリケーションの 1 つで、YouTube ビデオを表示する必要があります。ユーザーが動画を送信した場合、その動画が YouTube で公開されているかどうかを確認する必要があります。OK の場合、ビデオ ID をデータベースに保存し、Web ページでビデオを生成する必要があります。

YouTube 動画を検証する方法はありますか?

4

2 に答える 2

1

このクラスを使用して、YouTube ビデオを抽出して検証します。これは /embed/ 、 /v/ 、 ?v= /、youtu.be などの YouTube URL で機能します。

class Youtube {
///// Put together by Sugato


////////// $video_id is the youtube video ID /////////////////////////
public $video_id = null;

///////// the Constructer ////////////////////////////////////////
public function __construct($url)
{
    if (preg_match('/youtube\.com\/watch\?v=([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtube\.com\/embed\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtube\.com\/v\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else if (preg_match('/youtu\.be\/([^\&\?\/]+)/', $url, $id)) {
          $this->video_id = $id[1];
    } else {   
          $this->video_id  = NULL;
    }

}
/////////// validates if a youtube video actually exists //////////////
function validate()
{
    if(empty($this->video_id))
    {
        return false;
    }
    else {
            $curl = curl_init("http://gdata.youtube.com/feeds/api/videos/" . $this->video_id);
            curl_setopt($curl, CURLOPT_HEADER, true);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_exec($curl);
            $request = curl_getinfo($curl);
            curl_close($curl);

            $result = explode(";", $request["content_type"]);

            if($result[0] == "application/atom+xml")
            {

                return true;

            } else {

                return false;

            }
    }
}


}

このようにクラスを呼び出します

  $yt = new Youtube($your_video_link_here);
    $exist  = $yt->validate();

    if($exist) 
    {
       echo "Yaaaayyyyyy!";
    } else
    {
       echo "nAAAAyyyy!!!";
    }
于 2012-08-04T17:53:50.167 に答える
0

ユーザーがビデオを送信することに全力を尽くしている場合は、既存のビデオと比較するためのハッシュを含むデータベースのようなもの (例: SHA チェックサム) を用意してから、ハッシュが既に存在するかどうかを確認する必要があります。私が知る限り、Google/YouTube は一般ユーザーが使用できるようなデータベースを提供していませんが、ユーザーがサービスを通じて送信する動画用に独自のデータベースを作成することはできます。使用できる他のより高度な手法がありますが、分析のために既存のすべてのビデオ ファイルにアクセスする必要があります。これは利用できません。

動画の URL を取得する限り、動画を YouTube にアップロードすると、その動画にリンクしたり、ウェブページに埋め込んだりできます。

于 2012-02-14T16:52:02.773 に答える