2016-09-19 4 views
0

Я хочу добавить заказы на поисковый запрос для JT API Youtube, но я не могу заставить его работать.Youtube JS API cuePlaylist Фильтрация

Это стандартный поиск с помощью браузера

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

Это является частью сценария, который делает то же поиск, но используя плеер

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

Испытано его, и он прекрасно работает. Однако, когда я хочу добавить заказ в поисковый запрос. Это не работает.

Например, поиск теста с дополнительным фильтром «Сегодня». IT не работает (список воспроизведения - пустой массив).

поиска браузер

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

Это, однако

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

не дает результата. В documentation состояния:

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

Я попытался заменить & с & т о р; (без пробелов), но до сих пор не кости.

Я также не мог найти ничего, что связано с фильтрацией в документации.

В основном возникает вопрос, как применить фильтрацию к методу cuePlaylist.

Edit:

Пробовал так:

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

СП не делать что-либо

ответ

1

Я не уверен, что если cuePlaylist поддерживает фильтрацию, но, ближайший я могу предложить использовать функция поиска

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

затем добавьте заказ или фильтры вы можете добавить, вы можете проверить Search документ для дополнительной информации.

Вот отрывок для него:

// 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, потому что GitHub использует API v2.

Надеюсь, это поможет!

+0

Большое спасибо, вам нужно добавить заказ, и это сработает. Например, последние загруженные видео сначала, закажите: 'date'. Сортировка видео не нужна (для меня в любом случае). Кроме того, видео содержит идентификаторы, которые не уверены в том, что вы имеете в виду, потому что в нем содержатся строки. –