using Google.Apis.Auth.OAuth2; using Google.Apis.Oauth2.v2; using Google.Apis.Oauth2.v2.Data; using Google.Apis.Services; using Google.Apis.YouTube.v3; using Google.Apis.YouTube.v3.Data; using System.Collections.Generic; using YouTube; namespace FoxTube.Models { public class User { public Userinfoplus UserInfo { get; } public UserCredential Credential { get; } public Channel Channel { get; private set; } public List Subscriptions { get; } = new List(); public ExtendedYouTubeService Service { get; } public User(UserCredential credential) { Credential = credential; BaseClientService.Initializer initializer = new BaseClientService.Initializer { ApplicationName = "FoxTube", HttpClientInitializer = Credential }; Service = new ExtendedYouTubeService(initializer); UserInfo = new Oauth2Service(initializer).Userinfo.Get().Execute(); // TODO: Retrieve history and WL SubscriptionsResource.ListRequest subRequest = Service.Subscriptions.List("snippet"); subRequest.Mine = true; subRequest.MaxResults = 50; subRequest.Order = SubscriptionsResource.ListRequest.OrderEnum.Relevance; SubscriptionListResponse subResponse; string nextToken = null; Subscriptions.Clear(); do { subRequest.PageToken = nextToken; subResponse = subRequest.Execute(); foreach (Subscription s in subResponse.Items) Subscriptions.Add(s); nextToken = subResponse.NextPageToken; } while (!string.IsNullOrWhiteSpace(nextToken)); var request = Service.Channels.List("snippet,contentDetails,brandingSettings"); request.Mine = true; Channel = request.Execute().Items[0]; } } }