Example #1
0
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyAfoTicQHOtC4quqROGeC3NqbPVhS8AwiU",
                ApplicationName = this.GetType().ToString()
            });

            var request = youtubeService.Search.List("snippet");  //

            request.Q          = LblMovieName.Content.ToString(); //{영화이름} 예고편
            request.MaxResults = 10;

            var response = await request.ExecuteAsync();//검색시작(youtube OpenApi호출)

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };
                    //썸네일 이미지
                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));
                    youtubes.Add(youtube);//여기서 개체 참조가 개체의 인스턴스로 설정되지 않았다고 예외 메시지가 발생함. youtubes에 아무 정보도 담기지 않음. 아마 API가 잘못되어서 그런 것일 것이다. 선생님 깃허브 보고 참조하자.
                }
            }
        }
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyBDO048WJAAPZlGUgAmV16xuhCXcWnA6YI",
                ApplicationName = this.GetType().ToString()
            });

            var request = youtubeService.Search.List("Snippet");

            request.Q          = lblMovieName.Content.ToString();
            request.MaxResults = 10;

            var response = await request.ExecuteAsync();

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };

                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));
                    lsvYoutubeSearch.Items.Add(youtube);
                }
            }
        }
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyCEj2ZDsfqi95enEjUzK0MD-dh1NN1DMo4",
                ApplicationName = this.GetType().ToString()
            }
                );

            var request = youtubeService.Search.List("snippet");

            request.Q          = LblMovieName.Content.ToString(); // {movieName} 예고편
            request.MaxResults = 10;                              // 사이즈가 너무 크면 프로그램 멈춤

            var response = await request.ExecuteAsync();          // 검색 시작(Youtube OpenAPI 호출)

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"http://www.youtube.com/watch?v={item.Id.VideoId}"
                    };

                    // 썸네일 이미지
                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));
                    youtubes.Add(youtube);
                }
            }
        }
 public VideoDetailPage(YoutubeItem yt)
 {
     InitializeComponent();
     youtubeItem         = yt;
     this.BindingContext = youtubeItem;
     id = youtubeItem.VideoId;
 }
 public async Task AddToFavourites(YoutubeItem entity)
 {
     var entitytoadd = new FavoriteVideos {
         VideoId = entity.VideoId
     };
     var result = await localFavorsRepository.InsertAsync(entitytoadd);
 }
Example #6
0
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyDwUh5aEYp7tTNKfTLUWmrh13Qcp2p1-IQ",
                ApplicationName = this.GetType().ToString()
            });

            var request = youtubeService.Search.List("snippet");

            request.Q          = LblMovieName.Content.ToString(); // {영화이름} 예고편
            request.MaxResults = 10;                              // size가 클 경우 멈춰버림

            var response = await request.ExecuteAsync();          //검색시작(youtube OpenApi 호출)

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };
                    //썸네일 이미지
                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));
                    youtubes.Add(youtube);
                }
            }
        }
 public void OnNavigatingTo(NavigationParameters parameters)
 {
     if (parameters.ContainsKey("videoKey"))
     {
         Vid = parameters["videoKey"] as YoutubeItem;
     }
 }
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            YoutubeItem video = (GetItem(position)) as YoutubeItem;

            MyViewHolder myHolder = holder as MyViewHolder;

            myHolder.title.Text          = video.Title;
            myHolder.published_date.Text = video.PublishedAt.ToString();


            Bitmap bbb = GetBitmapFromUrl(video.MediumThumbnailUrl);

            myHolder.imageView.SetImageBitmap(bbb);

            myHolder.imageView.Click += (sender, args) =>
            {
                var intent = new Intent(mcon, typeof(PlayVideoActivity));
                intent.AddFlags(ActivityFlags.NewTask);

                intent.PutExtra(PlayVideoActivity.ExtraUrlKey, video.VideoId);

                mcon.StartActivity(intent);
            };



            myHolder.removeButton.Click += delegate
            {
                ((FavouritesViewModel)ViewModel).entity = video;

                ((FavouritesViewModel)ViewModel).RemoveFromFavoritiesCommand.Execute();
            };
        }
Example #9
0
        private async Task <List <YoutubeItem> > GetVideosAsync()
        {
            //string apiUrlForVideosDetails = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=" + xxh + "&maxResults=50&order=rating" + "&key=" + ApiKey;
            var content = await cclient.GetStringAsync(apiUrlForVideosDetails);

            Debug.WriteLine("async started");

            var youtubeItems = new List <YoutubeItem>();

            Debug.WriteLine("B4 tryblock");
            try
            {
                Debug.WriteLine("Tryblock");
                Debug.WriteLine(content);
                JObject response = JsonConvert.DeserializeObject <dynamic>(content);
                Debug.WriteLine(response);

                var items = response.Value <JArray>("items");
                Debug.WriteLine(items);
                Debug.WriteLine("B4 for each items");
                foreach (var checki in items)
                {
                    var snippet = checki.Value <JObject>("snippet");
                    var id      = checki.Value <JObject>("id");
                    Debug.WriteLine(snippet);
                    Debug.WriteLine(id);

                    var h = new YoutubeItem
                    {
                        VideoId             = id.Value <string>("videoId"),
                        Title               = snippet.Value <string>("title"),
                        DefaultThumbnailUrl = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("default")?.Value <string>("url"),
                        MediumThumbnailUrl  = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("medium")?.Value <string>("url"),
                        HighThumbnailUrl    = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("high")?.Value <string>("url"),
                    };

                    Debug.WriteLine(h.VideoId + " cheez value");
                    Debug.WriteLine(h.Title + " cheez value");
                    Debug.WriteLine(h.DefaultThumbnailUrl);
                    Debug.WriteLine(h.HighThumbnailUrl);
                    Debug.WriteLine("****************************************");

                    youtubeItems.Add(h);
                }
                foreach (var a in youtubeItems)
                {
                    Debug.WriteLine(a);
                    Debug.WriteLine("*********XXXXX**************");
                }
                Debug.WriteLine("return Utubeitem");
                return(youtubeItems);
            }
            catch (Exception exception)
            {
                return(youtubeItems);

                Debug.WriteLine("Exception");
            }
        }
Example #10
0
        private async Task <List <YoutubeItem> > GetVideosDetailsAsync(List <string> videoIds)
        {
            var videoIdsString = "";

            foreach (var s in videoIds)
            {
                videoIdsString += s + ",";
            }

            var httpClient = new HttpClient();

            var json = await httpClient.GetStringAsync(string.Format(apiUrlForVideosDetails, videoIdsString));

            var youtubeItems = new List <YoutubeItem>();

            try
            {
                JObject response = JsonConvert.DeserializeObject <dynamic>(json);

                var items = response.Value <JArray>("items");

                foreach (var item in items)
                {
                    var snippet    = item.Value <JObject>("snippet");
                    var statistics = item.Value <JObject>("statistics");

                    var youtubeItem = new YoutubeItem
                    {
                        Title                = snippet.Value <string>("title"),
                        Description          = snippet.Value <string>("description"),
                        ChannelTitle         = snippet.Value <string>("channelTitle"),
                        PublishedAt          = snippet.Value <DateTime>("publishedAt"),
                        VideoId              = item?.Value <string>("id"),
                        DefaultThumbnailUrl  = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("default")?.Value <string>("url"),
                        MediumThumbnailUrl   = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("medium")?.Value <string>("url"),
                        HighThumbnailUrl     = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("high")?.Value <string>("url"),
                        StandardThumbnailUrl = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("standard")?.Value <string>("url"),
                        MaxResThumbnailUrl   = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("maxres")?.Value <string>("url"),

                        ViewCount     = statistics?.Value <int>("viewCount"),
                        LikeCount     = statistics?.Value <int>("likeCount"),
                        DislikeCount  = statistics?.Value <int>("dislikeCount"),
                        FavoriteCount = statistics?.Value <int>("favoriteCount"),
                        CommentCount  = statistics?.Value <int>("commentCount"),

                        //Tags = (from tag in snippet?.Value<JArray>("tags") select tag.ToString())?.ToList(),
                    };

                    youtubeItems.Add(youtubeItem);
                }

                return(youtubeItems);
            }
            catch (Exception exception)
            {
                Debug.WriteLine(exception);
            }
            return(youtubeItems);
        }
Example #11
0
 public TubeLink(YoutubeItem item, string src)
 {
     InitializeComponent();
     FlowDirection       = (AppSettings.LastUserGravity == "English") ? FlowDirection.LeftToRight : FlowDirection.RightToLeft;
     BackImg.Rotation    = (AppSettings.LastUserGravity == "English") ? 180 : 0;
     WebKey.Source       = src;
     this.BindingContext = item;
 }
Example #12
0
        public async Task readImageFromUrl(string url, YoutubeItem item)
        {
            byte[]       bytes    = wc.DownloadData(url);
            MemoryStream ms       = new MemoryStream(bytes);
            Image        srcImage = Image.FromStream(ms);

            ImageUpdated(srcImage, item);
        }
        public SingleYoutubeVideo()
        {
            InitializeComponent();
            BindingContext = new YoutubeItem();

            //youtubeItem = (YoutubeItem)BindingContext;
            youtubeVideo.Source = "https://www.youtube.com/embed/" + videoId;
        }
Example #14
0
        public void ImageTapped(YoutubeItem itemTapped)
        {
            var a = itemTapped;
            var launchActivity = DependencyService.Get <ILaunchActivity>();

            launchActivity.LaunchSingleVideo(itemTapped);
            //var singleActivity = new Intent(this,typeof(SingleVideoActivity))
            //StartActivity()
        }
        public async Task RemoveFromFavorities(YoutubeItem entity)
        {
            var list = await localFavorsRepository.ReadAll();

            var entitytoremove = list.Where(x => x.VideoId == entity.VideoId).FirstOrDefault();

            var v = await localFavorsRepository.Delete(entitytoremove);

            // var entitytoremove = FavoriteList.Where(x => x.VideoId == entity.VideoId).FirstOrDefault();
            // var result = await localFavorsRepository.Delete(entitytoremove);
        }
Example #16
0
 async void commentUpdated(List <Comment> comments)
 {
     y2bList.Clear();
     foreach (Comment cmt in comments)
     {
         YoutubeItem item = new YoutubeItem(false);
         item.Title       = cmt.authorName;
         item.Description = cmt.comment;
         item.Duration    = cmt.time;
         y2bList.Add(item);
     }
     y2bList.Visible = true;
 }
Example #17
0
        public SingleYoutubeVideo(string videoId)
        {
            InitializeComponent();
            BindingContext = new YoutubeItem();

            //adds " to the end of the videoId
            videoId = videoId + "\"";
            //youtubeVideo.Source = "https://www.youtube.com/embed/" + videoId;
            var htmlSource = new HtmlWebViewSource();

            //the htmlSource.Html would look something like<html><body><iframe width="100%" src="https://www.youtube.com/embed/ow241ADZxE" frameborder="0" allowfullscreen></iframe></body></html>
            htmlSource.Html     = @"<html><body><iframe width=""100%"" height=""100%"" src = ""https://www.youtube.com/embed/" + videoId + " frameborder = \"0\" allowfullscreen></iframe ></body></html>";
            youtubeVideo.Source = htmlSource;
        }
        private void OnVideoTapped(YoutubeItem item)
        {
            // var navParams = new NavigationParameters();
            //navParams.Add("videoKey", item);
            //_navigationService.NavigateAsync(nameof(VideoDetails), navParams);
            IActionSheetButton Yes = ActionSheetButton.CreateButton("Yes", new DelegateCommand(() => {
                Task.Run(() => { Device.OpenUri(new Uri(item.Url)); });
            }));
            IActionSheetButton No = ActionSheetButton.CreateButton("No", new DelegateCommand(() => { Debug.WriteLine("No"); }));

            _page.DisplayActionSheetAsync("Using third party app for watching video!", Yes, No);

            Debug.WriteLine($"**** {this.GetType().Name}.{nameof(OnVideoTapped)}; {_videos}");
        }
        public async Task Remove(YoutubeItem entity)
        {
            var list = await localFavorsRepository.ReadAll();

            var entitytoremove = list.Where(x => x.VideoId == entity.VideoId).FirstOrDefault();

            await localFavorsRepository.Delete(entitytoremove);

            var l = FavoritesVideos.Where(x => x.VideoId != entity.VideoId);

            FavoritesVideos = new ObservableCollection <YoutubeItem>(l);

            this.RaisePropertyChanged(() => this.FavoritesVideos);
        }
        public void LaunchSingleVideo(YoutubeItem item)
        {
            var intent = new Intent(MainActivity.Instance, typeof(SingleVideoActivity));

            intent.PutExtra("SelectedVideo", JsonConvert.SerializeObject(
                                new YoutubeItem {
                VideoId = item.VideoId,
                Title   = item.Title
            }));

            MainActivity.Instance.StartActivity(intent);
            MainActivity.Instance.OverridePendingTransition(
                Android.Resource.Animation.FadeIn,
                Android.Resource.Animation.FadeOut);
        }
Example #21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RequestWindowFeature(WindowFeatures.NoTitle);
            SetContentView(Resource.Layout.SingleActivityLayout);
            // Create your application here
            var txtTitleHeader = FindViewById <TextView>(Resource.Id.txtVideoTitle);
            var youtubeView    = FindViewById <YouTubePlayerView>(Resource.Id.youtube_view);

            youtubeItem = JsonConvert.DeserializeObject <YoutubeItem>(Intent.GetStringExtra("SelectedVideo"));

            txtTitleHeader.Text = youtubeItem.Title;

            youtubeView.Initialize(Configs.ApiKey, this);
        }
Example #22
0
        async void videoListUpdated(List <VideoInfo> videos)
        {
            y2bList.Clear();
            foreach (VideoInfo info in videos)
            {
                YoutubeItem item = new YoutubeItem();
                item.Title       = info.Title;
                item.Description = info.Description;
                item.Duration    = info.PublishedAt; // info.Duration;
                item.Url         = info.Id;

                // load the thumb image in async mode
                await searcher.readImageFromUrl(info.Thumbnail, item);

                y2bList.Add(item);
            }
            y2bList.Visible = true;
        }
Example #23
0
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyD3vOLfJ0Tiv0FBfQGg8RulTE9HSajf0hQ",
                ApplicationName = this.GetType().ToString()
            });

            var request = youtubeService.Search.List("snippet");

            request.Q          = LblMovieName.Content.ToString(); //영화이름 예고편
            request.MaxResults = 20;                              // 사이즈가 크면 멈춤

            var response = await request.ExecuteAsync();          //검색시작 youtube openapi 호출

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };
                    //썸네일 이미지
                    //Process.Start(youtube.URL);
                    //byte[] imgBytes = new WebClient().DownloadData(item.Snippet.Thumbnails.Default__.Url);
                    //using ( var ms = new MemoryStream(imgBytes))
                    //{
                    //    var source = new BitmapImage();
                    //    source.BeginInit();
                    //    source.StreamSource = ms;
                    //    source.EndInit();
                    //    //할당
                    //    youtube.Thumbnail = new Image() { Source = source };
                    //}
                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));

                    youtubes.Add(youtube);
                }
            }
        }
        private async Task LoadDataCollection()
        {
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyCUooX3bJbpNAuJQYyELG22rKxFeTH7H0E",
                ApplicationName = this.GetType().ToString()
            });

            var request = youtubeService.Search.List("snippet");

            request.Q          = LblMovieName.Content.ToString(); // (영화이름) 예고편
            request.MaxResults = 10;                              // 사이즈가 크면 멈춰버림

            var response = await request.ExecuteAsync();          // 검색시작(youtube OpenAPI 호출)

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };

                    /*// 썸네일 이미지
                     * byte[] imgBytes = new WebClient().DownloadData(item.Snippet.Thumbnails.Default__.Url);
                     * using (var ms = new MemoryStream(imgBytes))
                     * {
                     *  var bitmapImg = new BitmapImage();
                     *  bitmapImg.BeginInit();
                     *  bitmapImg.StreamSource = ms;
                     *  bitmapImg.EndInit();
                     *  //할당
                     *  youtube.Thumbnail = new Image() { Source = bitmapImg };
                     * }*/
                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));

                    youtubes.Add(youtube);
                }
            }
        }
        private async Task LoadData()
        {
            if (IsLoading)
            {
                return;
            }
            IsLoading = true;
            YoutubeItems.Clear();

            var httpClient = new HttpClient();
            var json       = await httpClient.GetStringAsync(apiUrlForPlaylist);

            try
            {
                JObject jsonResponse = JsonConvert.DeserializeObject <dynamic>(json);
                var     items        = jsonResponse.Value <JArray>("items");
                foreach (var item in items)
                {
                    var snippet     = item.Value <JObject>("snippet");
                    var youtubeItem = new YoutubeItem
                    {
                        Title                = snippet.Value <string>("title"),
                        Description          = snippet.Value <string>("description"),
                        ChannelTitle         = snippet.Value <string>("channelTitle"),
                        PublishedAt          = snippet.Value <DateTime>("publishedAt"),
                        VideoId              = snippet?.Value <JObject>("resourceId")?.Value <string>("videoId"),
                        DefaultThumbnailUrl  = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("default")?.Value <string>("url"),
                        MediumThumbnailUrl   = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("medium")?.Value <string>("url"),
                        HighThumbnailUrl     = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("high")?.Value <string>("url"),
                        StandardThumbnailUrl = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("standard")?.Value <string>("url"),
                        MaxResThumbnailUrl   = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("maxres")?.Value <string>("url"),
                    };
                    YoutubeItems.Add(youtubeItem);
                }
            }
            catch
            {
                // todo: handle an exception
            }
            finally
            {
                IsLoading = false;
            }
        }
        private async Task <List <YoutubeItem> > GetVideosDetailsAsync(List <string> videoIds)
        {
            var videoIdsString = "";

            foreach (var s in videoIds)
            {
                videoIdsString += s + ",";
            }

            var httpClient = new HttpClient();

            var json = await httpClient.GetStringAsync(string.Format(apiUrlForVideosDetails, videoIdsString));

            var youtubeItems = new List <YoutubeItem>();

            try
            {
                JObject response = JsonConvert.DeserializeObject <dynamic>(json);

                var items = response.Value <JArray>("items");

                foreach (var item in items)
                {
                    var snippet    = item.Value <JObject>("snippet");
                    var statistics = item.Value <JObject>("statistics");

                    var youtubeItem = new YoutubeItem
                    {
                        Title              = snippet.Value <string>("title"),
                        VideoId            = item?.Value <string>("id"),
                        MediumThumbnailUrl = snippet?.Value <JObject>("thumbnails")?.Value <JObject>("medium")?.Value <string>("url"),
                    };

                    youtubeItems.Add(youtubeItem);
                }

                return(youtubeItems);
            }
            catch (Exception exception)
            {
                return(youtubeItems);
            }
        }
Example #27
0
        private async Task LoadDataCollection()
        {
            var youtubeSerivie = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyArr68BFJRqX0i1vBFlJHh_NVcDkAhmzLk",
                ApplicationName = this.GetType().ToString()
            });
            var request = youtubeSerivie.Search.List("snippet");  //

            request.Q          = LblMovieName.Content.ToString(); // Q=쿼리, {영화이름} 예고편 검색
            request.MaxResults = 10;                              // ※ 주의 : 사이즈가 크면 멈춰버림

            var response = await request.ExecuteAsync();          //검색시작 (Youtube OpenAPI 호출)

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };
                    //썸네일 이미지
                    //byte[] imgBytes = new WebClient().DownloadData(item.Snippet.Thumbnails.Default__.Url);
                    //using (var ms = new MemoryStream(imgBytes))
                    //{
                    //    var bitmapImg = new BitmapImage();
                    //    bitmapImg.BeginInit();
                    //    bitmapImg.StreamSource = ms;
                    //    bitmapImg.EndInit();
                    //    // 값 할당
                    //    youtube.Thumbnail = new Image() { Source = bitmapImg };
                    //}

                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url));
                    youtubes.Add(youtube);
                }
            }
        }
Example #28
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
            {
                return(System.Windows.Visibility.Collapsed);
            }

            YoutubeItem item        = ((SelectableMediaItem)value).Item as YoutubeItem;
            String      matchString = (String)parameter;

            String[] types = matchString.Split(new char[] { '|' });

            if (types.Contains(item.GetType().Name))
            {
                return(System.Windows.Visibility.Visible);
            }
            else
            {
                return(System.Windows.Visibility.Collapsed);
            }
        }
        bool filterFunc(SelectableMediaItem selectableItem)
        {
            YoutubeItem item = (YoutubeItem)selectableItem.Item;

            switch ((FilterMode)FilterModes.CurrentItem)
            {
            case FilterMode.None:
                break;

            case FilterMode.Videos:
                if (!(item is YoutubeVideoItem))
                {
                    return(false);
                }
                break;

            case FilterMode.Channels:
                if (!(item is YoutubeChannelItem))
                {
                    return(false);
                }
                break;

            case FilterMode.Playlists:
                if (!(item is YoutubePlaylistItem))
                {
                    return(false);
                }
                break;

            default:
                break;
            }

            bool result = tagFilter(selectableItem);

            return(result);
        }
        // Task
        // 비동기 작업을 나타냅니다. 이 유형에 대한.NET Framework 소스 코드를 찾아보려면 참조는 Reference Source합니다.
        private async Task LoadDataCollection()
        {
            // key : AIzaSyCLYMpoH-7OqiCgujQUUwBUZ6rIDryld-E
            // Entity Framework 6.2.0  으로 다운그레이드 ...
            var youtubeService = new YouTubeService(
                new BaseClientService.Initializer()
            {
                ApiKey          = "AIzaSyCLYMpoH-7OqiCgujQUUwBUZ6rIDryld-E",
                ApplicationName = this.GetType().ToString()
            }
                );

            var request = youtubeService.Search.List("snippet");

            request.Q          = LblMovieName.Content.ToString(); // "{영화이름} 예고편" 으로 검색
            request.MaxResults = 10;

            var response = await request.ExecuteAsync(); // 유튜브 API 호출

            // youtubes = new List<YoutubeItem>(); // 초기화

            foreach (var item in response.Items)
            {
                if (item.Id.Kind.Equals("youtube#video"))
                {
                    YoutubeItem youtube = new YoutubeItem()
                    {
                        Title  = item.Snippet.Title,
                        Author = item.Snippet.ChannelTitle,
                        URL    = $"https://www.youtube.com/watch?v={item.Id.VideoId}"
                    };

                    youtube.Thumbnail = new BitmapImage(new Uri(item.Snippet.Thumbnails.Default__.Url, UriKind.RelativeOrAbsolute));

                    youtubes.Add(youtube);
                }
            }
        }