Example #1
0
        public async Task <string> GetVideoUri(string cid, int quality)
        {
            //http://interface.bilibili.com/playurl?platform=android&cid=5883400&quality=2&otype=json&appkey=422fd9d7289a1dd9&type=mp4
            try
            {
                wc = new WebClientClass();
                //string url = "http://interface.bilibili.com/playurl?platform=android&cid=" + cid + "&quality=" + quality + "&otype=json&appkey=422fd9d7289a1dd9&type=mp4";
                string url = "http://interface.bilibili.com/playurl?_device=uwp&cid=" + cid + "&otype=json&quality=" + quality + "&appkey=" + ApiHelper._appKey + "&access_key=" + ApiHelper.access_key + "&type=mp4&mid=" + UserClass.Uid + "&_buvid=D9EFA749-6CCA-43B3-A3D2-20225D874E672072infoc&_hwid=03005a8603001c9a&platform=uwp_desktop" + "&ts=" + ApiHelper.GetTimeSpen;
                url += "&sign=" + ApiHelper.GetSign(url);
                // url += "&sign=" + ApiHelper.GetSign(url);

                string        results = "";
                VideoUriModel model   = null;
                string        area    = "";
                if (useHkIp)
                {
                    area = "hk";
                }
                if (userTwIp)
                {
                    area = "tw";
                }
                if (userDlIp)
                {
                    area = "cn";
                }
                if (!userDlIp && !userTwIp && !useHkIp)
                {
                    results = await wc.GetResults_Phone(new Uri(url));

                    model = JsonConvert.DeserializeObject <VideoUriModel>(results);
                }
                else
                {
                    results = await wc.GetResults(new Uri("http://52uwp.com/api/BiliBili?area=" + area + "&url=" + Uri.EscapeDataString(url)));

                    MessageModel ms = JsonConvert.DeserializeObject <MessageModel>(results);


                    if (ms.code == 0)
                    {
                        model = JsonConvert.DeserializeObject <VideoUriModel>(ms.message);
                    }
                    if (ms.code == -100)
                    {
                        await new MessageDialog("远程代理失效,请联系开发者更新!").ShowAsync();
                    }
                    if (ms.code == -200)
                    {
                        await new MessageDialog("代理读取信息失败,请重试!").ShowAsync();
                    }
                }
                //-5021
                if (model.code == -5021)
                {
                    await new MessageDialog("不支持你所在地区!").ShowAsync();
                }
                List <VideoUriModel> model1 = JsonConvert.DeserializeObject <List <VideoUriModel> >(model.durl.ToString());
                return(model1[0].url);
            }
            catch (Exception)
            {
                return(null);
            }
        }