示例#1
0
        private static byte[] GetPayload(long aid, long cid, long qn, PlayViewReq.CodeType codec)
        {
            var obj = new PlayViewReq();

            obj.epId = aid;
            obj.Cid  = cid;
            //obj.Qn = qn;
            obj.Qn              = 126;
            obj.Fnval           = 976;
            obj.Spmid           = "main.ugc-video-detail.0.0";
            obj.fromSpmid       = "main.my-history.0.0";
            obj.preferCodecType = codec;
            obj.Download        = 0; //0:播放 1:flv下载 2:dash下载
            obj.forceHost       = 2; //0:允许使用ip 1:使用http 2:使用https
            LogDebug("PayLoadPlain: {0}", ConvertToString(obj));
            return(PackMessage(ObjectToBytes(obj)));
        }
示例#2
0
        /// <summary>
        /// 番剧播放地址
        /// </summary>
        /// <param name="epid">剧集epid</param>
        /// <param name="cid">CID</param>
        /// <param name="qn">清晰度</param>
        /// <param name="fnval">0、2=flv,16=dash</param>
        /// <param name="codeType">编码,支持h264及h265</param>
        /// <param name="access_key">登录后access_key</param>
        /// <returns></returns>
        public async Task <PlayViewReply> BangumiPlayView(long epid, long cid, int qn, int fnval, CodeType codeType, string access_key = "")
        {
            var message = new PlayViewReq()
            {
                EpId            = epid,
                Cid             = cid,
                Qn              = qn,
                Fnval           = fnval,
                Fourk           = 1,
                PreferCodecType = codeType
            };
            var result = await GrpcRequest.Instance.SendMessage("https://app.bilibili.com/bilibili.pgc.gateway.player.v1.PlayURL/PlayView", message, access_key);

            if (result.status)
            {
                return(PlayViewReply.Parser.ParseFrom(result.results));
            }
            else
            {
                throw new Exception(result.message);
            }
        }