static async Task Main(string[] args) { /* ===================================================================== * * 001 : ニコニコ動画からCookie情報を取得する方法. * ===================================================================== */ // 1 - login を利用するために必要なパラメータを用意. #region string email = ""; // ニコニコログイン用メールアドレス string pass = ""; // ニコニコログイン用パスワード #endregion // 2 - login の実行. // - Cookie情報を取得可能. CookieContainer cookie001 = Nico2API.Login(email, pass); /* ===================================================================== * * 002 : ニコニコAPIを利用するためのクライアントを生成する. * ===================================================================== */ // 1 - クライアント生成に必要なパラメータを用意. CookieContainer cookie002 = cookie001; // ニコニコ動画のCookie情報 int liveId = 314829021; // ニコニコ生放送の番組ID // 2 - クライアントの生成. Nico2API client001 = new Nico2API(cookie002, liveId); // [方法 A] newを使用してのインスタンス化. Nico2API client002 = Nico2API.Create(cookie002, liveId); // [方法 B] Createメソッドを使用してのインスタンス化. /* ===================================================================== * * 003 : ニコニコ生放送番組情報を取得する. * ===================================================================== */ // 1 - 生放送番組情報を取得. PlayerStatus info = client001.GetPlayerStatus(); // 2 - 取得した情報を表示してみる. Console.WriteLine($"コミュニティID : {info.CommunityID}"); Console.WriteLine($"生放送番組ID : {info.LiveID}"); Console.WriteLine($"生放送番組タイトル : {info.Title}"); Console.WriteLine($"生放送番組概要 : {info.Description}"); Console.WriteLine($"生放送番組閲覧者数 : {info.WatchCount}"); Console.WriteLine($"生放送番組コメント数: {info.CommentCount}"); /* ===================================================================== * * 004 : ニコニコ生放送からコメントを取得する. * ===================================================================== */ await client001.ConsumeCommentAsync( comment => // ここにコメント取得時の操作を記述する. { int no = comment.Number; // コメント投稿番号. string userId = comment.UserID; // コメント投稿ユーザID. string text = comment.Text; // コメント内容. bool is184 = comment.Anonymity; // 184コメントの場合, true. bool isPremium = comment.IsPremium; // コメント投稿ユーザがプレミアム会員の場合, true. Nico2Color color = comment.Color; // コメント色. Nico2Size commentSize = comment.Size; // コメントサイズ. Nico2Locate commentLocate = comment.Locate; // コメントの位置. long pos = comment.VideoPosition; // コメント投稿時間(放送開始からの経過秒). DateTime postedDate = comment.PostDate; // コメント投稿時刻. System.Drawing.Color sysColor = color.ToRGB(); // MiDNico2API.Windows版限定. コメント色をRGBに変換する. // コメントを表示してみる. Console.WriteLine($"[{no.ToString("000")}] {text}\t({userId})"); }); //await Nico2API.Create(cookie001, liveId).ConsumeCommentAsync(c=>{Console.WriteLine($"[{c.Number.ToString("000")}] {c.Text}");}); Console.ReadKey(); }
static void Main(string[] args) { // ====================================================================================================================================== // ニコニコにログインしてCookieを取得するサンプル // ====================================================================================================================================== //var cookie = Nico2API.Login(email, pass); // ====================================================================================================================================== // Google Chromeからクッキー情報を取得するサンプル // ====================================================================================================================================== var table = ChromeCookieGetter.Prepare(ChromeCookieGetter.DefaultWindowsPath) // Googole Chrome のCookie DBの場所を指定 .WithHostKey(".nicovideo.jp") // ニコニコのCookieを取得するためのKeyを指定 .WithName("user_session") // ニコニコのCookieの中でもSession情報が必要なので, それを取得するためのKeyを指定 .Do(); var cookie = new ChromeNicoCookie(table); // 取得したDB情報を元にCookieデータを生成する // ====================================================================================================================================== // Mozilla FireFoxからクッキー情報を取得するサンプル // ====================================================================================================================================== //var table = FireFoxCookieGetter.Prepare (FireFoxCookieGetter.DefaultWindowsPath) // Mozilla FireFox のCookie DBの場所を指定 // .WithHostKey(".nicovideo.jp") // ニコニコのCookieを取得するためのKeyを指定 // .WithName ("user_session") // ニコニコのCookieの中でもSession情報が必要なので, それを取得するためのKeyを指定 // .Do(); //var cookie = new FireFoxNicoCookie(table); // 取得したDB情報を元にCookieデータを生成する // ====================================================================================================================================== // ニコニコ生放送の番組情報を取得するサンプル // ====================================================================================================================================== PlayerStatus playerstatus = Nico2API.GetPlayerStatus(cookie, $"lv{_liveId}"); // ------------------------------------------ // パラメータ作成用の情報を取得 string userId = playerstatus.User.ID; bool ispremium = playerstatus.User.IsPremium; IPEndPoint ipendpoint = playerstatus.Ms.ToIPEndPoint(); int nico2thread = playerstatus.Ms.Thread; // ------------------------------------------ // 各種APIで利用するパラメータを作成 var user = (userId, ispremium); // ユーザ情報 var session = (ipendpoint, cookie, nico2thread); // セッション情報 // ====================================================================================================================================== // 番組からコメントを取得するサンプル // ====================================================================================================================================== var task = Nico2API.ConsumeComment(session, // [必須] セッション情報 comment => // [必須] コメント受信時の処理 { var number = comment.No; // コメント番号 var userid = comment.UserId; // コメント投稿者ユーザID var text = comment.Text; // コメント内容 var _184 = comment.Anonymity; // 184かどうか var date = comment.Date; // コメント投稿時刻 var vpos = comment.Vpos; // コメント投稿時間(生放送が開始してからの経過時間) var command = comment.CommandCode; // コメントに設定されているコマンド(whiteやredなどの色指定等) // ------------------------------------------ // ユーザ情報を取得するサンプル if (!_kotehan.TryGetValue(userid, out string name)) { var userinfo = Nico2API.GetUserInfo(userid); // ユーザ情報を取得するAPI _kotehan.Add(userid, userinfo.User.NickName); name = userinfo.User.NickName; } // ------------------------------------------ // コメントの出力 Console.WriteLine($"{number} {name} {text} ({vpos})"); }, 200, // [オプション] 過去何件分まで遡ってコメントを取得するかの設定(default:100件) 5120 // [オプション] 一度に何byte分のコメント情報を取得するかの設定(default:1024byte) ); // ====================================================================================================================================== // 番組にコメントを投稿するサンプル // ====================================================================================================================================== var thread = Nico2API.GetThreadInfo(session); // 生放送の概要を取得する var postkey = Nico2API.GetPostKey(cookie, thread); // コメントを投稿するためのキーを取得する var startdate = playerstatus.Stream.BaseTime; // 生放送の開始時刻を取得する Nico2API.PostComment(session, // [必須] セッション情報 postkey, // [必須] コメント投稿用キー値 user, // [必須] ユーザ情報 _github, // [必須] 投稿するコメント内容 startdate, // [必須] 生放送の開始時刻 "red", // [オプション] 文字色 "small", // [オプション] 文字サイズ "naka" // [オプション] 表示位置 ); // ====================================================================================================================================== // 番組に運営者コメントを投稿するサンプル // ====================================================================================================================================== Nico2API.PostCommentAsAdmin(session, // [必須] セッション情報 _liveId, // [必須] 生放送ID _github, // [必須] 投稿するコメント内容 true, // [オプション] 表示を生主コメント欄に固定するかどうか(default:false) "blue2", // [オプション] 文字色(default:white) "管理人" // [オプション] コメントに付与するニックネーム(default:"") ); //Nico2API.DeletePermComment(session, _liveId); // 生主コメント欄に固定しているコメントを削除する // ====================================================================================================================================== // コメント取得を停止するサンプル // ====================================================================================================================================== Console.ReadKey(); Nico2API.StopComment(session.ipendpoint); Console.WriteLine("\n##### END #####"); Console.ReadKey(); }