}
/**
+ * 過去ログ取得用のキーを取得します.
+ * @param vi {@link #getVideoInfo(java.lang.String) }で取得したオブジェクト.
+ * @return 過去ログ取得用キー
+ * @throws IOException 取得に失敗した場合.
+ */
+ public String getWayBackKey(VideoInfo vi) throws IOException {
+ final String url = "http://flapi.nicovideo.jp/api/getwaybackkey?thread=" + vi.getThreadId();
+ final HttpGet get = new HttpGet(url);
+ HttpResponse response = http.execute(get);
+ String res;
+ try {
+ final int statusCode = response.getStatusLine().getStatusCode();
+ if (statusCode != HttpStatus.SC_OK) {
+ throw new IOException("waybackkey get error " + statusCode);
+ }
+
+ final BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
+ res = br.readLine();
+ logger.debug("wayback get result text: " + res);
+ } finally {
+ response.getEntity().consumeContent();
+ }
+
+ final String keyWayBackKey = "waybackkey=";
+ final String[] keyValues = res.split("&");
+ for (String s : keyValues) {
+ final String[] kv = s.split("=");
+ if (keyWayBackKey.equals(kv[0])) {
+ return kv[1];
+ }
+ }
+
+ throw new IOException("wayback key get fail: " + res);
+ }
+
+ /**
* rankingの場合、本当のタイトルの前に"第XX位:"の文字列が
* 挿入されているため, それを削る.
* @param list 対象のリスト.