diff --git a/YoutubeExtractor/YoutubeExtractor/Decipherer.cs b/YoutubeExtractor/YoutubeExtractor/Decipherer.cs index e5ac261..04bb82e 100644 --- a/YoutubeExtractor/YoutubeExtractor/Decipherer.cs +++ b/YoutubeExtractor/YoutubeExtractor/Decipherer.cs @@ -9,7 +9,7 @@ internal static class Decipherer { public static string DecipherWithVersion(string cipher, string cipherVersion) { - string jsUrl = string.Format("http://s.ytimg.com/yts/jsbin/player-{0}.js", cipherVersion); + string jsUrl = string.Format("http://s.ytimg.com/yts/jsbin/player-{0}/base.js", cipherVersion); string js = HttpHelper.DownloadString(jsUrl); //Find "C" in this: var A = B.sig||C (B.s) diff --git a/YoutubeExtractor/YoutubeExtractor/DownloadUrlResolver.cs b/YoutubeExtractor/YoutubeExtractor/DownloadUrlResolver.cs index 6896edf..b6d080c 100644 --- a/YoutubeExtractor/YoutubeExtractor/DownloadUrlResolver.cs +++ b/YoutubeExtractor/YoutubeExtractor/DownloadUrlResolver.cs @@ -230,7 +230,7 @@ private static string GetDecipheredSignature(string htmlPlayerVersion, string si private static string GetHtml5PlayerVersion(JObject json) { - var regex = new Regex(@"player-(.+?).js"); + var regex = new Regex(@"player-(.+?)/base.js"); string js = json["assets"]["js"].ToString(); diff --git a/YoutubeExtractor/YoutubeExtractor/HttpHelper.cs b/YoutubeExtractor/YoutubeExtractor/HttpHelper.cs index e25f23a..eca55cf 100644 --- a/YoutubeExtractor/YoutubeExtractor/HttpHelper.cs +++ b/YoutubeExtractor/YoutubeExtractor/HttpHelper.cs @@ -5,13 +5,23 @@ using System.Text; using System.Text.RegularExpressions; + namespace YoutubeExtractor { internal static class HttpHelper { public static string DownloadString(string url) { -#if PORTABLE +#if WINDOWS_PHONE + var request = new Windows.Web.Http.HttpMethod("GET"); + var w = new Windows.Web.Http.HttpClient(); + + var r = await w.GetAsync(new Uri(url)); + r.RequestMessage.Method = request; + r.EnsureSuccessStatusCode(); + var returno = await r.Content.ReadAsStringAsync(); + return returno; +#elif PORTABLE var request = WebRequest.Create(url); request.Method = "GET"; @@ -21,7 +31,7 @@ public static string DownloadString(string url) null); return task.ContinueWith(t => ReadStreamFromResponse(t.Result)).Result; -#else +#else using (var client = new WebClient()) { client.Encoding = System.Text.Encoding.UTF8; @@ -32,7 +42,7 @@ public static string DownloadString(string url) public static string HtmlDecode(string value) { -#if PORTABLE +#if PORTABLE return System.Net.WebUtility.HtmlDecode(value); #else return System.Web.HttpUtility.HtmlDecode(value);