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))); }
/// <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); } }