private static YoutubePage LoadJson(string url)
        {
            var page = new YoutubePage();

            page.Source = HttpHelper.DownloadString(url);

            if (IsVideoUnavailable(page.Source))
            {
                throw new VideoNotAvailableException();
            }

            //var dataRegex = new Regex(@"ytplayer\.config\s*=\s*(\{.+?\});", RegexOptions.Multiline);
            var dataRegex = new Regex(@"ytInitialPlayerResponse\s*=\s*(\{.+?\});", RegexOptions.Multiline);

            var extractedJson = dataRegex.Match(page.Source).Result("$1");

            page.PlayerConfigJson = JObject.Parse(extractedJson);

            var regex2 = new Regex(@"ytcfg.set\((\{.+?\})\);", RegexOptions.Multiline);
            var json2  = regex2.Match(page.Source).Result("$1");

            page.ConfigJson2 = JObject.Parse(json2);

            return(page);
        }
        private static string GetHtml5PlayerVersion(YoutubePage page)
        {
            var regex = new Regex(@"player(.+?)\.js");

            //string js = json["assets"]["js"].ToString();
            string js = page.ConfigJson2.ToString();
            //"jsUrl":"/s/player/5dd3f3b2/player_ias.vflset/ru_RU/base.js"
            var m = regex.Match(js);

            return(m.Result("$1"));
        }