2012-01-31 17 views
0

私はYoutube Apiを使用する音楽サイトを持っています。私はサイズでビデオをフィルタリングしたいです。高画質のビデオがある場合、コンサートなどが表示されるため、低速インターネット接続でストリーミングが邪魔になることがあります。 また、私は純粋なミュージックビデオを表示したい。私はコンサートのレコード、カバーやリミックスなどを表示したくないです。元の音楽レコードをフィルタリングするためにどの方法で休止しますか?これは、検索結果からHDビデオを除外することはできません、私が使用していた検索コードがyoutube api filtered検索

/* 
$params: string, artist_name - song 
returns an array >> video_id, video name, video length 
*/  
function youtube_find_video($params) 
{ 
    str_replace("'", "", $params); 
    $q = preg_replace('/[[:space:]]/', '/', trim($params)); 
    $q = utf8_decode(utf8_encode($q)); 
    $replacements = array(',', '?', '!', '.'); 
    $q = str_replace($replacements, "", $q); 
    $feedURL = "http://gdata.youtube.com/feeds/api/videos/-/{$q}?orderby=relevance&max-results=1"; 
    $sxml = simplexml_load_file($feedURL); 
    if(!$sxml) 
    { 
     return false; 
    }  
    else{ 
     $entry = $sxml->entry; 
     if(!$entry) 
     { 
      return false; 
     } 

     // get nodes in media: namespace for media information 
     $media = $entry->children('http://search.yahoo.com/mrss/'); 

     if($media) 
     { 
      // get video player URL 
      $attrs = $media->group->player->attributes(); 
      $url = $attrs['url']; 
      if(!$url) 
      { 
       return false; 
       break; 
      } 
      parse_str(parse_url($url, PHP_URL_QUERY), $my_array_of_vars); 
      $watch['id'] = $my_array_of_vars['v']; 

      // get video name 
      $watch['name'] = $media->group->title; 

      // get <yt:duration> node for video length[minute] 
      $yt = $media->children('http://gdata.youtube.com/schemas/2007'); 
      $attrs = $yt->duration->attributes(); 
      $watch['length'] = sprintf("%0.2f", $attrs['seconds']/60); 

      $watch = simplexml_kurtul($watch); 
      return $watch;   
     } 

     else 
     { 
      return false; 
     } 
    } 


}  
+0

ようこそ。あなたの質問は何ですか、何がうまくいかないのですか? –

+0

ありがとう:)そのコードは正常に動作しますが、私はそれを改善したいと思います。どちらの方法で元のミュージックビデオをフィルタリングするのですか?ない、コンサート、カバーまたはリミックス。オリジナルの純粋なミュージックビデオ。 – Tahtakafa

答えて

1

あるところで

。ドキュメントから撮影:

を唯一のHDビデオを取得するために、truehdパラメータ値を設定したり、リクエストのパラメータが含まれますが、パラメータ値を指定しないでください。 falseは有効なパラメータ値ではなく、HDビデオを除外するように検索結果を制限することはできません。 APIのデフォルトの動作は、解像度に関係なくすべての動画を返すことです。ビデオフィードエントリの<yt:hd>タグは、ビデオにHDコンテンツが含まれていることを示します。

YouTubeプレーヤーのJavaScript APIには、ビデオの読み込み時に行うことができるsetting the video qualityのメソッドがあります。

ミュージックビデオ以外を除外することはできません。しかし、私の知る限り、あなただけのYouTubeパートナーがアップロードした動画を検索することができ、そしてそれはVEVOが含まれています

のみ検索要求のためにサポートされてuploaderパラメータは、あなたがYouTubeパートナーにクエリを制限することができますビデオ。 YouTubeパートナーは、YouTubeパートナープログラムに参加して参加している個人または組織です。 uploaderパラメータの値はpartnerである必要があります。

ビデオを検索するためのすべてのオプションは、現在in the docsです。

関連する問題