Example #1
0
        /// <summary>
        /// 動画番号が含まれる文字列から情報を作成します。
        /// </summary>
        public static VideoData CreateFromPage(string videoStr, CookieContainer cc)
        {
            if (string.IsNullOrEmpty(videoStr))
            {
                throw new ArgumentNullException("videoStr");
            }

            if (cc == null)
            {
                throw new ArgumentNullException("cc");
            }

            var videoId = VideoUtil.GetVideoId(videoStr);

            if (string.IsNullOrEmpty(videoId))
            {
                throw new NicoVideoException(
                          $"{videoStr}: 不正な動画IDです。");
            }

            // urlを取得します。
            var responseData = WebUtil.RequestHttp(
                NicoString.GetVideoUrl(videoId),
                null,
                cc);

            // 失敗;; エラー時はレスポンスが空になります。
            if (responseData == null)
            {
                throw new NicoVideoException(
                          "放送ページの取得に失敗しました。",
                          videoId);
            }

            var text = Encoding.UTF8.GetString(responseData);

            return(CreateFromPageHtml(text));
        }