public async Task youtubeAPI()
        {
            HttpClient          client   = new HttpClient();
            string              url      = $"{Config.YoutubeAPIBaseURL}&key={Config.YoutubeApiKey}&part=snippet&maxResults=1000&q=aaa";
            HttpResponseMessage response = await client.GetAsync(url);

            if (response.IsSuccessStatusCode)
            {
                string data = await response.Content.ReadAsStringAsync();

                var youtubeJObject = JObject.Parse(data);
                var items          = youtubeJObject.SelectTokens("items").Children();
                //var data2= JsonConvert.DeserializeObject<object>(data);
                foreach (var item in items)
                {
                    string          videoId          = item.SelectToken("id").SelectToken("videoId").ToString();
                    string          publishedAt      = item.SelectToken("snippet").SelectToken("publishedAt").ToString();
                    string          description      = item.SelectToken("snippet").SelectToken("description").ToString();
                    string          channelId        = item.SelectToken("snippet").SelectToken("channelId").ToString();
                    string          title            = item.SelectToken("snippet").SelectToken("title").ToString();
                    string          thumbnailDefault = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("default").SelectToken("url").ToString();
                    string          thumbnailMedium  = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("medium").SelectToken("url").ToString();
                    string          thumbnailHigh    = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("high").SelectToken("url").ToString();
                    string          thumbnail        = thumbnailDefault ?? thumbnailMedium ?? thumbnailHigh;
                    YouTubeVideoDTO youtubeDTO       = new YouTubeVideoDTO
                    {
                        ChannelId   = channelId,
                        Description = description,
                        PublishedAt = publishedAt,
                        Thumbnail   = thumbnail,
                        Title       = title,
                        VideoId     = videoId
                    };
                }
            }
            else
            {
                throw new Exception(await response.Content.ReadAsStringAsync());
            }
        }
Пример #2
0
        public async Task <ResponseDTO <List <YouTubeVideoDTO> > > SearchYoutubeByKeyword(string searchKeyword)
        {
            List <YouTubeVideoDTO> youtubeList = new List <YouTubeVideoDTO>();
            string url = $"{Config.YoutubeAPIBaseURL}&key={Config.YoutubeApiKey}&part=snippet&maxResults=1000&q={HttpUtility.UrlEncode(searchKeyword)}";
            HttpResponseMessage response = await client.GetAsync(url);

            if (!response.IsSuccessStatusCode)
            {
                return(new ResponseDTO <List <YouTubeVideoDTO> >
                {
                    data = youtubeList,
                    success = false,
                    responseMessage = response.Content.ReadAsStringAsync().Result
                });
            }

            string data = await response.Content.ReadAsStringAsync();

            var youtubeJObject = JObject.Parse(data);
            var items          = youtubeJObject.SelectTokens("items").Children();

            //var data2= JsonConvert.DeserializeObject<object>(data);
            foreach (var item in items)
            {
                string videoId = item.SelectToken("id").SelectToken("videoId") != null?item.SelectToken("id").SelectToken("videoId").ToString() : null;

                string publishedAt = item.SelectToken("snippet").SelectToken("publishedAt") != null?item.SelectToken("snippet").SelectToken("publishedAt").ToString() : null;

                string description = item.SelectToken("snippet").SelectToken("description").ToString() != null?item.SelectToken("snippet").SelectToken("description").ToString() : null;

                string channelId = item.SelectToken("snippet").SelectToken("channelId") != null?item.SelectToken("snippet").SelectToken("channelId").ToString() : null;

                string title = item.SelectToken("snippet").SelectToken("title").ToString() != null?item.SelectToken("snippet").SelectToken("title").ToString() : null;

                string thumbnailDefault = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("default").SelectToken("url") != null?item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("default").SelectToken("url").ToString() : null;

                string thumbnailMedium = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("medium").SelectToken("url") != null?item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("medium").SelectToken("url").ToString() : null;

                string thumbnailHigh = item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("high").SelectToken("url") != null?item.SelectToken("snippet").SelectToken("thumbnails").SelectToken("high").SelectToken("url").ToString() : null;

                string thumbnail = thumbnailDefault ?? thumbnailMedium ?? thumbnailHigh;
                if (videoId != null && title != null)
                {
                    YouTubeVideoDTO youtubeDTO = new YouTubeVideoDTO
                    {
                        ChannelId   = channelId,
                        Description = description,
                        PublishedAt = publishedAt,
                        Thumbnail   = thumbnail,
                        Title       = title,
                        VideoId     = videoId
                    };
                    youtubeList.Add(youtubeDTO);
                }
            }
            ResponseDTO <List <YouTubeVideoDTO> > responseDTO = new ResponseDTO <List <YouTubeVideoDTO> > {
                data         = youtubeList,
                itemsPerPage = 1000,
                success      = true,
                totalData    = youtubeList.Count
            };

            return(responseDTO);
        }