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")); }