ニコニコ動画から削除された動画をコミュニティ登録動画からも削除するツール作成メモ(コミュオーナー用)

某コミュに登録された動画登録上限の10000に近づいてきたので対策を模索してみました。

完全に自分用の覚書です。

対策案

  • 大元が削除されている動画をコミュ動画から排除する
  • コメントは動画が消えても見られるので今回は削除対象とせず様子見
  • マイリストのカウントはコミュ動画から排除しても影響がないと考えられるので削除する。

URL構造

動画投稿が古い順

  1. http://com.nicovideo.jp/video/co6?page=1&sort=f&order=a
  2. http://com.nicovideo.jp/video/co6?page=2&sort=f&order=a
  3. http://com.nicovideo.jp/video/co6?page=3&sort=f&order=a

HTML構造調査

htmlコードを貼り付けるプラグインの詳細な解説

削除された動画(
html整形済み

<tr valign="top">
  <td style="padding:6px 0px;">
    <div>
    <a href="http://www.nicovideo.jp/watch/★ここに動画番号★" style="display:block;">
      <img src="http://com.res.nimg.jp/img/common/delete.jpg" alt="" class="video_img_M" title="★ここにタイトルが入ります★">
    </a>
    </div>
    </div>[登録者] 
    <a href="http://www.nicovideo.jp/user/★ここにユーザー番号★">★ここにユーザー名★</a>
    <a href="settings/co6?member_id=783466">【権限を編集】</a>
    <strong>★ここに動画の長さ(時間)★</strong>
  </td>
  <td style="padding:6px;">【 
    <a href="/video/co6/★ここに動画番号★">編集</a>】
    <span class="subinfo">投稿日時:</span>
    <strong>★ここに投稿日付(YYYY年MM月DD日)★ </strong>
    <span class="optional">★ここに投稿時刻(HH:MM:SS)★ </span>
    <strong style="color:#377;">(出身コミュニティに設定されています)</strong>
    <span class="subinfo">再生:</span>
    <strong>★ここに再生数★</strong>&nbsp;
    <span class="subinfo">コメント:</span>
    <strong>★ここにコメント数★</strong>&nbsp;
    <span class="subinfo">マイリスト:</span>
    <strong>★ここにマイリスト数★</strong>&nbsp;&#x20;(再生、コメントは全員可)
    <div style="width:600px;overflow:hidden;">
    <h3 style="margin:4px 0;">
      <a class="video" href="http://www.nicovideo.jp/watch/★ここに動画番号★">★ここにタイトル★</a>
    </h3>★ここに動画の説明★ 
    </div>
  </td>
</tr>
<tr>
  <td colspan="4" style="padding:6px 0px;">
    <img src="http://com.res.nimg.jp/img/_.gif" alt="" width="2" height="2">
  </td>
</tr>

スクレイピング動作

ログアウト

https://secure.nicovideo.jp/secure/logout

ログイン

https://account.nicovideo.jp/login

<form action="/api/v1/login?show_button_twitter=1&site=niconico&show_button_facebook=1" method="POST" id="login_form">
  <label class="input-group__label">メールアドレスまたは電話番号</label>
  <input id="input__mailtel" type="text" name="mail_tel" value="">
  <label class="input-group__label">パスワード</label>
  <input id="input__password" type="password" name="password">
  <input id="login__submit" type="submit" value="ログイン" class="button button-primary round shadow-around">
</form>

動画ページのhtml取得

http://com.nicovideo.jp/video/co6?page=★ページ番号★&sort=f&order=a

http://com.res.nimg.jp/img/common/delete.jpg

という文字までスキップ。無ければ次のページを取得 動画情報を取得する。取得する項目は

  • コミュ内の動画番号
  • 再生数
  • マイリスト数
  • 投稿者番号(多分ツールでは未使用)
  • 投稿者名(多分ツールでは未使用)
  • 動画タイトル(多分ツールでは未使用)

削除したい動画URL

http://www.nicovideo.jp/watch/1229226628

削除受付けページ

http://com.nicovideo.jp/video/co6/1229226628

<form action="/edit_video" method="post">
  <input type="hidden" name="mode" value="delete">
  <input type="hidden" name="community_id" value="co6">
  <input type="hidden" name="thread_id" value="1229226628">
  <p style="margin-top:4px;">
    <input type="submit" value="この動画をコミュニティ動画から除外" onClick="return confirm('本当に除外しますか?');" class="submit">
  </p>
</form>

以下のURLにポスト

http://com.nicovideo.jp/edit_video

mode=delete
community_id=co6
thread_id=1229226628

実装

EXCEL VBAで実装。
削除対象取得をクリックするとEXCELシート上に削除対象URLを取得、
削除動画削除をクリックするとEXCELシート上に展開されたURLの動画を削除。
Image23

削除中の様子
Image25

1動画削除ごとに10秒待機してこれ。
Image26

30秒待機にして実行。
とりあえず今のところ停止すること無く動いてる。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存