1週間分のチャットでも、日曜日の夜から取れば、月曜の昼には全部取れるという事は分かった。まぁ、一度に取る必要は無いので、順次取っておけばよいわけだが。
スタックサイズ変更
チャット取得時にスタックオーバーフロー起こすことが有ったので、スタック領域を無理やり拡張。ぺこらが10時間の配信とかやると、デフォルト設定ではチャットが取れない。
/// <summary> /// 拡張スタックサイズ 10M /// </summary> private const int MAX_STACK_SIZE = 10000000; /// <summary> /// Liveチャットリストを取得する /// </summary> /// <param name="url">Youtube動画URL</param> /// <returns></returns> public List<LiveCommentCompleted> GetLiveCommentList(string url) { Log.Info("コメント取得開始:" + url); VideoId = GetVideoId(url); string commentMasterUrl = GetMasterChatUrl(url); List<LiveCommentCompleted> commentList = new List<LiveCommentCompleted>(); Thread thread = new Thread(new ThreadStart(() => { CollectCommentByHttpRequest(commentMasterUrl, ref commentList, true); }), MAX_STACK_SIZE); thread.Start(); //スレッドが終わるまで待つ thread.Join(); LiveCommentCompleted.ResetCounter(); Log.Info("コメント取得終了:" + url); return commentList; }
動画テーブルに動画時間情報の追加
動画一覧を管理する時に欲しかった。これでチャット密度とかも出せるようになるし。
そして一番最初に作ろうと思っていた動画側のランキングが全然できてない謎。