YouTube API v3: доступ к видео на YouTube с использованием учетной записи службы
Я пытаюсь использовать учетную запись службы Google для отображения видео из API данных YouTube v3 в.NET. Я активировал YouTube API, создал службу аккаунта, но всякий раз, когда я пытаюсь добавить видео с моего канала, он показывает 0 видео, даже если я уже загрузил видео. Не могли бы вы помочь? Благодарю.
Вот код -
string[] scopes = new string[]
{
YouTubeAnalyticsService.Scope.YtAnalyticsReadonly,
YouTubeAnalyticsService.Scope.YtAnalyticsMonetaryReadonly,
"https://www.googleapis.com/auth/youtube.force-ssl"
};
// service account credential
GoogleCredential credential = GoogleCredential.FromFile(SecretPath).CreateScoped(scopes);
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = channelinfo.AnalyticsAPIFileDataStore
});
Dictionary<string, DateTime?> videoIds = new Dictionary<string, DateTime?>();
var channelResourcesList = youtubeService.Channels.List("contentDetails");
channelResourcesList.Id = channelinfo.ChannelId;
var listResult = channelResourcesList.Execute();
string playListId = listResult.Items[0]?.ContentDetails.RelatedPlaylists.Uploads;
var listOfVideos = youtubeService.PlaylistItems.List("snippet");
listOfVideos.PlaylistId = playListId;
var nextPageToken = "";
while (nextPageToken != null)
{
listOfVideos.MaxResults = 50;
listOfVideos.PageToken = nextPageToken;
// searchresult is empty (listOfVideos.Execute() returns empty result) although channelResourcesList.Execute() worked
var searchListResult = listOfVideos.Execute();
nextPageToken = searchListResult.NextPageToken;
}
2 ответа
API YouTube не поддерживает аутентификацию аккаунтов сервисов.
На странице, на которую вы ссылаетесь, есть ошибка, если вы заметите, что они не говорят, как настроить учетную запись службы, потому что это, скорее всего, сгенерированная документация. Я связался с командой с удачей, они исправят это так, чтобы никакие другие разработчики не были смущены.
Вам нужно будет использовать Oauth2 и аутентифицировать пользователя хотя бы один раз, а затем сохранить токен обновления, который будет использоваться для запроса нового токена доступа, когда вам потребуется доступ к API.
Вы можете настроить сервисный аккаунт для использования с Youtube API. Однако вы не сможете получить доступ к какому-либо частному контенту. «... вы не можете связать новые или существующие каналы с сервисными аккаунтами».