2016-09-19 11 views
0

Youtube JS APIの検索クエリに注文を追加したいが、それを動作させることができない。Youtube JS API cuePlaylistフィルタリング

これはこれは、同じ検索を行いますが、プレイヤー

player.cuePlaylist({listType:'search', list:'test'}); 

はそれをテストし、それが完璧に動作を使用して、スクリプトの一部であり、ブラウザ

https://www.youtube.com/results?search_query=test 

を使用して、標準の検索です。しかし、私は検索クエリに順序を追加する場合。それは動作しません。

たとえば、追加フィルタ「今日」でテストを検索します。 ITが機能しません(プレイリストは空の配列です)。

ブラウザ検索は、しかし

player.cuePlaylist({listType:'search', list:'sp=CAESAggC&q=test'}); 

が結果を得られない

https://www.youtube.com/results?sp=CAESAggC&q=test 

これです。 documentation状態は:(スペースなし)が、まだダイス

If the listType property value is search, then the list property specifies the search query. 

Iは& M pで&を交換しようとしました。

また、ドキュメントにフィルタリングに関連するものが見つかりませんでした。

基本的には、どのようにフィルタリングをcuePlaylistメソッドに適用するのですか?

編集:

player.cuePlaylist({listType:'search', list:'test', sp:'CAESAggC'}); 

spは私がcuePlaylistのフィルタリングをサポートしているかどうかわからないんだけど何も

答えて

1

をしませんでしたけど、私が提案できる最も近い使用することです:

はこれを試しました検索機能

type: 'GET', 
data: { 
key: 'API_KEY', 
q: query, 
part: 'snippet' 
} 
}) 

あなたが追加したフィルタで注文を追加すると、あなたがチェックすることができます追加情報についてはSearch文書をご覧ください。ここで

はそれのためのスニペットです:githubのは、API V2を使用しているため、ここで

// search video 
$("#search").click(function() { 
var query = $("#query").attr("value"); 
if (!query) { 
return; 
} 
$.ajax({ 
url: 'https://www.googleapis.com/youtube/v3/search', 
dataType: 'json', 
type: 'GET', 
data: { 
key: 'AIzaSyBda8mhaE8x10RiF0uzvBMPUszbUIQsy0g', 
q: query, 
part: 'snippet' 
} 
}).done(function(data) { 
player.stopVideo(); 
player.clearVideo(); 
$('#video').fadeIn(); 
var videos = []; 
console.log(data); 
$.each(data.items, function() { 
console.log(this.id.videoId) 
videos.push(this.id.videoId); 
}); 
// sort by favorite 
videos = videos.sort(function(a, b) { 
return b.favoriteCount - a.favoriteCount; 
}); 
player.cuePlaylist(videos); 
}); 
}); 
}); 

snippetのソースですが、私はtutorialを使用して、いくつかの調整をしました。

希望すると便利です。

+0

多くのおかげで、あなたが注文を追加する必要があり、それは動作します。たとえば、最新のアップロードされた動画(最初は「日付」)です。ビデオの並べ替えは必要ありません(私にとってはとにかく)。また、動画には文字列が含まれているため、favoriteCountが意味することがわからないidsが含まれています。 –