private void buttonOpen_Click(object sender, EventArgs e) { if (listVideos.SelectedItems.Count == 0) { return; } YTVid video = (YTVid)listVideos.SelectedItems[0].Tag; Process.Start("https://www.youtube.com/watch?v=" + video.VideoID); }
private void buttonLoad_Click(object sender, EventArgs e) { string username = textUser.Text.Trim(); if (username.Length == 0) { MessageBox.Show("Please enter a username!", "Username missing!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DateTime notOlderThan = dateFrom.Value; var youtubeService = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = GoogleAuth.getCredentials(username), ApplicationName = "PersonalVideoOrganizer" }); videos.Clear(); var nextSubPageToken = ""; while (nextSubPageToken != null) { var subListRequest = youtubeService.Subscriptions.List("snippet"); subListRequest.Mine = true; subListRequest.Order = SubscriptionsResource.ListRequest.OrderEnum.Alphabetical; subListRequest.MaxResults = 50; subListRequest.PageToken = nextSubPageToken; Debug.WriteLine("Loading subs of '" + username + "'"); var subListResponse = subListRequest.Execute(); foreach (var subscription in subListResponse.Items) { var channelID = subscription.Snippet.ResourceId.ChannelId; var channelInfoRequest = youtubeService.Channels.List("contentDetails"); channelInfoRequest.Id = channelID; Debug.WriteLine("Getting channel Info of '" + subscription.Snippet.Title + "'"); var channelInfoResponse = channelInfoRequest.Execute(); var channelUploadedPlaylistID = channelInfoResponse.Items[0].ContentDetails.RelatedPlaylists.Uploads; var nextVidPageToken = ""; while (nextVidPageToken != null) { var vidListRequest = youtubeService.PlaylistItems.List("snippet"); vidListRequest.PlaylistId = channelUploadedPlaylistID; vidListRequest.MaxResults = 50; vidListRequest.PageToken = nextVidPageToken; Debug.WriteLine("Getting uploaded Videos"); var vidListResponse = vidListRequest.Execute(); var timeLimitReached = false; foreach (var video in vidListResponse.Items) { if (video.Snippet.PublishedAt < notOlderThan) { Debug.WriteLine("Video too old... going to next sub..."); timeLimitReached = true; break; } YTVid ytvid = new YTVid(); ytvid.Title = video.Snippet.Title; ytvid.Description = video.Snippet.Description; ytvid.PublishedAt = DateTime.Parse(video.Snippet.PublishedAtRaw, null, DateTimeStyles.RoundtripKind); ytvid.Publisher = subscription.Snippet.Title; ytvid.Thumbnails = video.Snippet.Thumbnails; ytvid.VideoID = video.Snippet.ResourceId.VideoId; videos.Add(ytvid); } if (timeLimitReached) { break; } nextVidPageToken = vidListResponse.NextPageToken; } } nextSubPageToken = subListResponse.NextPageToken; } updateVideoList(); }