ニコニコ動画用Greasemonkeyスクリプト

ニコニコ動画用に、広告(ニコニコ市場は除く)、一番上の購入履歴とか出るところを削除して、プレイヤーまでスクロールさせるスクリプトを書いてみた。

// ==UserScript==
// @name nico
// @namespace null
// @description null
// @include http://www.nicovideo.jp/*
// @exclude null
// ==/UserScript==

(function() {
//delete ads & topbar
  var body = document.getElementsByTagName('body');
  body[0].style.backgroundImage = 'none';

  removeNode(document.getElementById('billboard_container'));

  var ads1 = document.getElementsByClassName('ads_728');
  removeNode(ads1[0]);

  var ads2 = $A(document.getElementsByTagName('div'));
  for (var i = 0, l = ads2.length; i < l; i++) {
    if (ads2[i].id.search(/^web_pc_categorygroup/) == 0) {
      removeNode(ads2[i].parentNode);
    }
  }

  var ads3 = document.getElementsByClassName('mb16p4');
  var last = ads3.length - 1;
  if (last > 0) {
    removeNode(ads3[last]);
  }

//scrolling
  if (location.href.search(/.+watch.+/) == 0) {
    window.scrollTo(0, document.getElementById('video_tags').offsetTop);
  }

//functions
  function getElementsByClassName(name) {
    var elements = [];
    var allElements = document.getElementsByTagName('*');
    for (var i = 0, l = allElements.length; i < l; i++) {
      if (allElements[i].className == name) {
        elements.push(allElements[i]);
      }
    }
    return elements;
  }

  function removeNode(targetNode) {
    return targetNode.parentNode.removeChild(targetNode);
  }

  function $A(list) {
    var array = [];
    for(var i = 0, l = list.length; i < l; i++) {
      array.push(list[i]);
    }
    return array;
  }
})();

どこまでスクロールさせるか迷ったけど、登録タグの部分までにした。コメント投稿欄が見えねーよって人はF11でフルスクリーンにすればおk(1024x768、Fx3の場合)。

追記|2008.07.09

トップページでニコニココラムの下にある広告も削除できるようにした。

追記|2008.07.11

トップページでカテゴリを変更すると広告が現れてしまう不具合を発見したけど、解決できねーorzリロードすれば一応大丈夫だけど。

追記|2008.07.16

いろいろ直したけど相変わらずリロードしなきゃダメ。

追記|2008.10.05

改良したよー。