public static RoomInfo GetRoomInfo(string originalRoomId) { //InfoLogger.SendInfo(originalRoomId, "DEBUG", "正在刷新信息"); var roomWebPageUrl = "https://api.live.bilibili.com/room/v1/Room/get_info?id=" + originalRoomId; var wc = new WebClient(); wc.Headers.Add("Accept: */*"); wc.Headers.Add("User-Agent: " + Ver.UA); wc.Headers.Add("Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,ja;q=0.4"); if (!string.IsNullOrEmpty(MMPU.Cookie)) { wc.Headers.Add("Cookie", MMPU.Cookie); } //发送HTTP请求 byte[] roomHtml; try { roomHtml = wc.DownloadData(roomWebPageUrl); } catch (Exception e) { InfoLogger.SendInfo(originalRoomId, "ERROR", "获取房间信息失败:" + e.Message); return(null); } //解析返回结果 try { var roomJson = Encoding.UTF8.GetString(roomHtml); var result = JObject.Parse(roomJson); var uid = result["data"]["uid"].ToString(); if (result["data"]["room_id"].ToString() != originalRoomId) { for (int i = 0; i < RoomList.Count(); i++) { if (RoomList[i].房间号 == originalRoomId) { RoomList[i].房间号 = result["data"]["room_id"].ToString(); break; } } } var roominfo = new RoomInfo { 房间号 = result["data"]["room_id"].ToString(), 标题 = result["data"]["title"].ToString().Replace(" ", "").Replace("/", "").Replace("\\", "").Replace("\"", "").Replace(":", "").Replace("*", "").Replace("?", "").Replace("<", "").Replace(">", "").Replace("|", ""), 直播状态 = result["data"]["live_status"].ToString() == "1" ? true : false, UID = result["data"]["uid"].ToString(), 直播开始时间 = result["data"]["live_time"].ToString() }; return(roominfo); } catch (Exception e) { InfoLogger.SendInfo(originalRoomId, "ERROR", "房间信息解析失败:" + e.Message); return(null); } }
public static string 获取真实房间号(string roomID) { //InfoLogger.SendInfo(originalRoomId, "DEBUG", "正在刷新信息"); var roomWebPageUrl = "https://api.live.bilibili.com/room/v1/Room/get_info?id=" + roomID; var wc = new WebClient(); wc.Headers.Add("Accept: */*"); wc.Headers.Add("User-Agent: " + Ver.UA); wc.Headers.Add("Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,ja;q=0.4"); if (!string.IsNullOrEmpty(MMPU.Cookie)) { wc.Headers.Add("Cookie", MMPU.Cookie); } //发送HTTP请求 byte[] roomHtml; try { roomHtml = wc.DownloadData(roomWebPageUrl); } catch (Exception e) { InfoLogger.SendInfo(roomID, "ERROR", "获取房间信息失败:" + e.Message); return(null); } //从返回结果中提取真实房间号 try { var roomJson = Encoding.UTF8.GetString(roomHtml); var result = JObject.Parse(roomJson); var live_status = result["data"]["live_status"].ToString(); if (live_status != "1") { return("-1"); } var roomid = result["data"]["room_id"].ToString(); // Console.WriteLine("真实房间号: " + roomid); return(roomid); } catch { return(roomID); } }
public static string 获取标题(string roomid) { roomid = 获取真实房间号(roomid); if (roomid == null) { Console.WriteLine("房间号获取错误。"); return(null); } var roomWebPageUrl = "https://api.live.bilibili.com/room/v1/Room/get_info?id=" + roomid; var wc = new WebClient(); wc.Headers.Add("Accept: */*"); wc.Headers.Add("User-Agent: " + Ver.UA); wc.Headers.Add("Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,ja;q=0.4"); if (!string.IsNullOrEmpty(MMPU.Cookie)) { wc.Headers.Add("Cookie", MMPU.Cookie); } //发送HTTP请求 byte[] roomHtml; try { roomHtml = wc.DownloadData(roomWebPageUrl); } catch (Exception e) { InfoLogger.SendInfo(roomid, "ERROR", "获取房间信息失败:" + e.Message); return(null); } //解析结果 try { var roomJson = Encoding.UTF8.GetString(roomHtml); var result = JObject.Parse(roomJson); return(result["data"]["title"].ToString().Replace(" ", "").Replace("/", "").Replace("\\", "").Replace("\"", "").Replace(":", "").Replace("*", "").Replace("?", "").Replace("<", "").Replace(">", "").Replace("|", "").ToString()); } catch (Exception e) { Console.WriteLine("视频流地址解析失败:" + e.Message); return(""); } }