private void PrepareUrl(Uri uri)
        {
            List.ItemsSource = null;

            _youtubeUrl = YoutubeUrl.Create(uri);
            if (_youtubeUrl == null) {
                Loading(false);  
                return; 
            }
            switch (_youtubeUrl.Type) {
                case VideoUrlType.User:
                    List.SelectionMode = ListViewSelectionMode.Single;
                    GetPlaylists();
                    break;
                case VideoUrlType.Channel:
                    GetPlaylistItems();
                    break;
                case VideoUrlType.Video:
                    if (_youtubeUrl.ChannelId != "") {
                        GetPlaylistItems();
                    } else
                        Loading(false);
                    break;
                case VideoUrlType.Unknown:
                    Loading(false);
                    break;
            }
            //return u;
        }
        public static YoutubeUrl Create(Uri u)
        {

            var surl = u.ToString();
            if (surl.StartsWith("https://")) {
                surl = "http://" + surl.Substring(8);
            } else if (!surl.StartsWith("http://")) {
                surl = "http://" + u;
            }
            var url = new YoutubeUrl { Uri = u, Type = VideoUrlType.Unknown, Provider = ContentProviderType.NONE };
            url.Parse(surl);
            return url;
        }
 public async Task<MSYoutubeEntry> GetAsync(YoutubeUrl youtubeUrl, Uri uri, MSYoutubeLoading loading = null)
 {
     var feed = new MSYoutubeEntry {YoutubeUrl = youtubeUrl, NextPageUri = new Uri(uri + ((String.IsNullOrEmpty(uri.Query)) ? "?" : "&") + "start-index=1&max-results=40")};
     await _GetAsync(uri, feed, loading);
     return feed;
 }