Exemplo n.º 1
0
        private static IEnumerable <VideoInfo> GetVideoInfos(IEnumerable <DownloadUrlResolver.ExtractionInfo> extractionInfos, string videoTitle)
        {
            List <VideoInfo> list = new List <VideoInfo>();

            using (IEnumerator <DownloadUrlResolver.ExtractionInfo> enumerator = extractionInfos.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    DownloadUrlResolver.ExtractionInfo current = enumerator.Current;
                    string    text       = HttpHelper.ParseQueryString(current.Uri.Query)["itag"];
                    int       formatCode = int.Parse(text);
                    VideoInfo videoInfo2 = Enumerable.SingleOrDefault <VideoInfo>(VideoInfo.Defaults, (VideoInfo videoInfo) => videoInfo.FormatCode == formatCode);
                    if (videoInfo2 != null)
                    {
                        videoInfo2 = new VideoInfo(videoInfo2)
                        {
                            DownloadUrl        = current.Uri.ToString(),
                            Title              = videoTitle,
                            RequiresDecryption = current.RequiresDecryption
                        };
                    }
                    else
                    {
                        videoInfo2 = new VideoInfo(formatCode)
                        {
                            DownloadUrl = current.Uri.ToString()
                        };
                    }
                    list.Add(videoInfo2);
                }
            }
            return(list);
        }
Exemplo n.º 2
0
 private static IEnumerable <DownloadUrlResolver.ExtractionInfo> ExtractDownloadUrls(JObject json)
 {
     string[] strArray = (string[])Enumerable.ToArray <string>(Enumerable.Concat <string>(((string)DownloadUrlResolver.GetStreamMap(json)).Split((char[])new char[1]
     {
         ','
     }), ((string)DownloadUrlResolver.GetAdaptiveStreamMap(json)).Split((char[])new char[1]
     {
         ','
     })));
     for (int index = 0; index < strArray.Length; ++index)
     {
         IDictionary <string, string> queryString = HttpHelper.ParseQueryString(strArray[index]);
         bool   flag = false;
         string url;
         if (queryString.ContainsKey("s") || queryString.ContainsKey("sig"))
         {
             flag = queryString.ContainsKey("s");
             string str = queryString.ContainsKey("s") ? queryString["s"] : queryString["sig"];
             url = string.Concat(string.Format("{0}&{1}={2}", queryString["url"], "signature", str), queryString.ContainsKey("fallback_host") ? string.Concat("&fallback_host=", queryString["fallback_host"]) : string.Empty);
         }
         else
         {
             url = queryString["url"];
         }
         string str1 = HttpHelper.UrlDecode(HttpHelper.UrlDecode(url));
         if (!HttpHelper.ParseQueryString(str1).ContainsKey("ratebypass"))
         {
             str1 = string.Concat(str1, string.Format("&{0}={1}", "ratebypass", "yes"));
         }
         DownloadUrlResolver.ExtractionInfo extractionInfo = new DownloadUrlResolver.ExtractionInfo();
         extractionInfo.RequiresDecryption = flag;
         Uri uri = new Uri(str1);
         extractionInfo.Uri = uri;
         yield return(extractionInfo);
     }
     strArray = (string[])null;
 }