/// <summary> /// publishstatusの取得を開始します。 /// </summary> private static void BeginGetPublishStatus(long liveId, InternalData internalData, AutoResetEvent ev) { WebUtil.RequestHttpAsync( NicoString.GetPublishStatusUrl(liveId), null, internalData.Cookie, (result, data) => { try { // publishstatusは放送主でないと取得できません。 var v = PublishStatus.CreateFromXml(liveId, NicoUtil.GetXml(data)); internalData.LiveStreamInfo.PublishStatus = v; } catch (Exception ex) { internalData.Exception = ex; } ev.Set(); }); }
/// <summary> /// playerstatusの取得を開始します。 /// </summary> private static void BeginGetPlayerStatus(long liveId, InternalData internalData, AutoResetEvent ev) { WebUtil.RequestHttpAsync( NicoString.GetPlayerStatusUrl(liveId), null, internalData.Cookie, (result, data) => { try { // ステータスがおかしければエラーとします。 var v = PlayerStatus.CreateFromXml(liveId, NicoUtil.GetXml(data)); internalData.LiveStreamInfo.PlayerStatus = v; } catch (Exception ex) { internalData.Exception = ex; } ev.Set(); }); }
/// <summary> /// アラート情報を作成します。 /// </summary> public static AlertInfo Create() { var node = NicoUtil.GetXml( "http://video.nicovideo.jp/api/getalertinfo", null); if (node == null) { throw new NicoLiveException(NicoStatusCode.NetworkError); } return(new AlertInfo(node)); }
/// <summary> /// ニコニコ生放送の情報を取得します。 /// </summary> public static PlayerStatus Create(long liveId, CookieContainer cc) { // 生放送IDから放送情報を取得します。 var node = NicoUtil.GetXml( NicoString.GetPlayerStatusUrl(liveId), cc); if (node == null) { throw new NicoLiveException( NicoStatusCode.NetworkError, NicoString.LiveIdString(liveId)); } return(CreateFromXml(liveId, node)); }
/// <summary> /// ニコニコのgetthumbinfo APIから動画情報を取得します。 /// </summary> /// <remarks> /// 参考URL) /// http://dic.nicovideo.jp/a/%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBapi /// </remarks> public static VideoData CreateFromApi(string videoStr) { if (string.IsNullOrEmpty(videoStr)) { throw new ArgumentNullException("videoStr"); } var videoId = VideoUtil.GetVideoId(videoStr); if (string.IsNullOrEmpty(videoId)) { throw new NicoVideoException( $"{videoStr}: 不正な動画IDです。"); } var url = string.Format( "http://ext.nicovideo.jp/api/getthumbinfo/{0}", videoId); var node = NicoUtil.GetXml(url, null); return(new VideoData(videoId, node)); }