BiliRanking.Core.BiliInterface.GetFlvUrl C# (CSharp) Метод

GetFlvUrl() публичный статический Метод

public static GetFlvUrl ( uint aid, uint cid ) : string
aid uint
cid uint
Результат string
        public static string GetFlvUrl(uint aid, uint cid)
        {
            SortedDictionary<string, string> parampairs = new SortedDictionary<string, string>();
            //parampairs.Add("aid", aid.ToString());
            //parampairs.Add("cid", cid.ToString());
            //-parampairs.Add("type", null);
            //parampairs.Add("otype", "json");
            //parampairs.Add("type", "mp4");
            //-parampairs.Add("player", "1");
            //-parampairs.Add("ts", ((long)((DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds)).ToString());
            //parampairs.Add("appkey", null);
            parampairs.Add("appsec", dlappsec);
            parampairs.Add("cid", cid.ToString());
            parampairs.Add("from", "miniplay");
            parampairs.Add("player", "1");
            //parampairs.Add("quality", "3");
            //string param = GetSign(parampairs);

            string final_param = "";
            foreach (var aparam in parampairs)
            {
                if (aparam.Value == null || aparam.Key == "appsec") continue;
                if (final_param != "") final_param += "&";
                final_param += aparam.Key + "=" + aparam.Value;
            }
            using (var md5 = MD5.Create())
            {
                string hashed = BitConverter.ToString(md5.ComputeHash(Encoding.ASCII.GetBytes(final_param + parampairs["appsec"]))).Replace("-", "").ToLower();
                final_param += "&sign=" + hashed;
            }

            string html = GetHtml("http://interface.bilibili.com/playurl?" + final_param);

            if (!html.Contains("<result>su"))
            {
                Log.Error("FLV地址获取失败! - CID:" + cid);
                return null;
            }

            byte[] byteArray = Encoding.UTF8.GetBytes(html);
            MemoryStream stream = new MemoryStream(byteArray);
            XElement xe = XElement.Load(stream);
            var t = xe.Elements("url");
            IEnumerable<string> elements = from ele in xe.Descendants("url") //where ele.Name == "url"
                                           select ele.Value;
            Log.Debug("获取到下载地址:" + elements.ToArray()[0]);
            return elements.ToArray()[0];
        }