Я хочу перечислить все частные видео для вошедшего в систему пользователя. Для начала я использую этот код из API, чтобы вывести список всех видео с канала пользователя. Единственный способ, который я нашел, чтобы заставить это работать - это выполнить 3 операции, сначала получить список воспроизведения для канала, затем получить видео для загруженного списка воспроизведения канала, затем добавить эти видео в список идентификаторов и, наконец, передать его в к списку videos.list. Очень упрощенная версия:
- gapi.client.youtube.channels.list {mine: true, part: 'contentDetails'}
- gapi.client.youtube.playlistItems.list {playlistId: playlistId, part: 'status, snippet'}, где playlistId был найден из предыдущей операции
- gapi.client.youtube.videos.list: идентификаторы, найденные из предыдущего списка, которые являются частными (или не включены в список)
Код ключа, который я сейчас использую для средней операции:
function requestVideoPlaylist(playlistId,pageToken) {
$('#video-container').html('');
var requestOptions = {
playlistId: playlistId,
part: 'status,snippet',
maxResults: 50
};
var found=false
if (pageToken) {
requestOptions.pageToken = pageToken;
}
var request = gapi.client.youtube.playlistItems.list(requestOptions);
request.execute(function(response) {
// Only show pagination buttons if there is a pagination token for the
// next or previous page of results.
pageToken = response.result.nextPageToken;
var playlistItems = response.result.items;
if (playlistItems) {
$.each(playlistItems, function(index, item) {
if (item.status.privacyStatus=='private') {
ids.push(item.snippet.resourceId.videoId)
//found=true
}
});
if (found) {
//Do stuff
} else {
//Do other stuff
}
}
});
}
Похоже, должен существовать способ фильтрации на основе privacyStatus, как, например, когда вы находитесь в YouTube Creator Studio, но если он есть, я точно не могу его найти. Есть идеи? Спасибо!