Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }