public async Task <List <YouTubeVideo> > GetVideosAsync()
        {
            var apiKey = "<your-api-key>";
            IYouTubePlaylistReader youtubePlaylistReader = new YouTubePlaylistReader(apiKey, new HttpClient())
            {
                PlaylistId = "UUASYHw_S6bt_7bUhyWWu61Q",
                MaxResults = 50
            };

            var youtubeObject = await youtubePlaylistReader.GetAsync();

            var list = new List <YouTubeVideo>();

            foreach (var item in youtubeObject.items)
            {
                var youtubeVideo = new YouTubeVideo(item.snippet.resourceId.videoId, item.snippet.title, item.snippet.publishedAt);
                list.Add(youtubeVideo);
            }
            return(list);
        }
Example #2
0
        public async Task GetAsyncTrue1()
        {
            var apiKey     = "hoge";
            var playlistId = "fuga";
            var maxResults = 50;

            using (var mockHttpClient = new MockHttpMessageHandler())
            {
                var urlBuilder = new StringBuilder();
                urlBuilder.Append("https://www.googleapis.com/youtube/v3/playlistItems");
                urlBuilder.Append("?part=snippet");
                urlBuilder.Append("&playlistId=" + playlistId);
                urlBuilder.Append("&maxResults=" + maxResults);
                urlBuilder.Append("&key=" + apiKey);

                var json = ReadJsonFile("playlist.json");
                mockHttpClient.When(urlBuilder.ToString()).Respond("application/json", json);

                var target = new YouTubePlaylistReader(apiKey, mockHttpClient.ToHttpClient())
                {
                    PlaylistId = playlistId,
                    MaxResults = maxResults
                };

                var actual = await target.GetAsync();

                Assert.NotNull(actual);
                Assert.Equal(11, actual.items.Count);

                var snipet = actual.items[0].snippet;
                Assert.NotNull(snipet);

                Assert.Equal("Song for�c(HY cover)", snipet.title);
                Assert.Equal(DateTime.Parse("2018-05-06T13:50:34.000Z").ToUniversalTime(), snipet.publishedAt.ToUniversalTime());
                Assert.NotNull(snipet.resourceId);
                Assert.Equal("JGBLgWBXn_A", snipet.resourceId.videoId);
            }
        }