2009年11月09日

動画ページにウォッチリスト登録ボタンを追加するGreasemonkeyスクリプト: NicoWatchlist AddButton

ニコニコ動画(9)になって、
動画投稿者の最新情報をチェックするための『ウォッチリスト』が実装されました。

ウォッチリストへの追加は、
追加したい投稿者のプロフィールページに行かないとなんですが、
プロフィールページへ行かずに、動画ページで登録してしまうためのスクリプトを作りました。
nicowatchlist_addbutton.user.js

このスクリプトをインストールすると、『投稿者プロフィールへ』のリンクの右に、
『<投稿者のニックネーム>をウォッチリストに追加』のリンクが表示されます。
20091109.png
(※) 詳細情報・メニューを隠している場合は、表示されません。


で、このリンクをクリックすると、動画投稿者がウォッチリストに追加されます。
20091109_2.png


登録済みなどで失敗したら、こんな感じに。
20091109_3.png


(画像には、今ニコニコで一番人気の【東方】Bad Apple!! PV【影絵】の作者様を
使わせて頂きました <(_ _)>)
posted by favril at 05:40 | Comment(0) | TrackBack(0) | Greasemonkey

2009年11月01日

add_r-18_button.user.js の ニコニコ動画(9)対応

以前に作った ニコニコ動画のランキングページでR-18のカテゴリボタンを追加するGreasemonkeyスクリプト
のニコニコ動画(9)対応版。

カテゴリ再編で見た目もかなり変わってしまったので、
新しいエントリで書きます。

機能的には、大きな変更は無いです。
ランキングページにR-18のリンクを追加するスクリプトです。
add_r-18_button.user.js

ランキングトップ(http://www.nicovideo.jp/ranking)
20091101.png
ページ下部に、ぽつんと表示。
(『R-18 デイリー 総合 ランキング』へのリンク)


各ランキングページ(http://www.nicovideo.jp/ranking/[fav|view|res|mylist]/[daily|weekly|monthly|total]/[各カテゴリ])
20091101_2.png
セレクトボックスに追加。
posted by favril at 13:26 | Comment(1) | TrackBack(0) | Greasemonkey

2009年06月24日

ニコニコ動画のマイリスト検索をしやすくするGreasemonkeyスクリプト

公開マイリスト検索が公式の機能であります。

20090624.png

20090624_1.png

で、これはAND検索やOR検索などもできるっぽいです。

ただ、公式だとそれをするための検索フォームがないので、
URLを直打ちするしかないんですが、
めんどうなので、検索フォームをGreasemonkeyで設置してみました。
nico_mylist_search.user.js

20090624_2.png

こんな感じでフォームが表示されるので、
AND検索なら「sm1234 sm5678」
OR検索なら「sm1234 OR sm5678」
NOT検索なら「sm1234 -sm5678」
とかってフォームに入力して検索すると、検索できます。
posted by favril at 14:21 | Comment(1) | TrackBack(0) | Greasemonkey

2009年05月07日

ニコニコ動画の新プレイヤーからGetVariableで値が取れない件についての考察

ついに登場!新・動画プレイヤー‐ニコニコニュース
4/27から導入されたニコニコ動画の新プレイヤーですが、
flvplayerに対して GetVariable (SetVariableも?)が出来なくなりました。
var player = document.getElementById("flvplayer");
player.GetVariable("o");

>> null

このblogで公開しているスクリプトで影響を受けるのは以下の3つです。
Nico Filter
Prevent Spoiler
High Comment Nicouser
3つとも GetVariable("o") で動画の情報を取得していたので、
それが出来なくなった新プレイヤーではまったく動作しません。
(一応、以下に書く応急処置で動作させてはいますが・・。)


GetVariable("o") で取得していた情報は、以下のAPIを叩くことでも取得できます。
http://www.nicovideo.jp/api/getflv?v=sm****
しかし、このAPIは無制限にアクセスできるものではないので、
複数のスクリプトがAPIを叩いてしまうと、短時間での連続アクセスとして、
数分間アクセス制限されてしまうという問題があります。

しかし、現状で新プレイヤーに対応するには、
このAPIを叩くしかありません。

そこで、この問題を解決する1つの方法として、
「全スクリプトでAPIの結果を共有する」方法はどうかと思い、
ライブラリみたいなものを作ってみました。

APIを叩く必要のあるスクリプトの場合は、
以下のJSをrequireあるいは、同様のスクリプトを記述します。
http://favril.myspace.googlepages.com/nicoapiresult.js

たとえば、
// ==UserScript==
// @name Nico Filter
// @namespace http://script41self.seesaa.net/
// @description 設定されているフィルタを表示するスクリプト
// @include http://www.nicovideo.jp/watch/*
// @require http://favril.myspace.googlepages.com/nicoapiresult.js
// ==/UserScript==

で、このJSでは、NicoApiResultというオブジェクトを定義しています。
使用方法は以下のようになります。
var result = new NicoApiResult();
result.ready(function () {
alert(window.GM_NicoApiResult.ng_up);
});

あるいは、
var result = new NicoApiResult();
result.ready(myFunc);

function myFunc() {
alert(window.GM_NicoApiResult.ms);
alert(window.GM_NicoApiResult.thread_id);
alert(window.GM_NicoApiResult.l);
}

readyメソッドは、APIの結果が無ければ(他のスクリプトがAPIを叩いていなければ)、
APIを叩いて、結果を「window.GM_NicoApiResult」に格納してから引数の関数を実行し、
結果が既に存在していれば、すぐに引数の関数を実行します。
つまり、APIの結果を利用するスクリプトが複数あっても、
APIは1回しか叩かれませんので、アクセス制限されることはありません。
readyの引数の関数内では確実にAPIの結果である「window.GM_NicoApiResult」が存在しています。
これは、スクリプト間でもwindowオブジェクトが共有されていることを利用しています。
(名前は、公式のものとかぶったりするといけないので、GMとか付けちゃってます。)

これで一応、問題は解決しますが、
こんなブログを見てる人は少ないでしょうから、
全スクリプトにこのJSを利用させるのは無理です。
なので、どうがんばってもアクセス制限のリスクがあります。


結局、一番よいのは公式頼みになってしまうけど、以下のどれかを公式がやってくれることですね。
・APIのアクセス制限を無くす
・videoオブジェクトのように、html内にAPIの結果の情報を記述する
・新プレイヤーを、旧プレイヤーのようにGetVariableできるようにする


追記メモ.
記事を書いてる最中に、新プレイヤーのページでも、
旧プレイヤーをappendさせて、旧プレイヤーから情報を取れないかなぁと思った。
けど、旧プレイヤーがそのうちなくなるかもしれないことを考えると、
これも良い方法ではないかぁ。
一応メモ程度に書いておく。
posted by favril at 07:23 | Comment(0) | TrackBack(0) | Greasemonkey

2009年04月09日

ちょっと宣伝

いつの間にか、このblogはニコニコ動画関係のスクリプトばっかりになってますが、
少し前から、↓でもblogも書いているので、宣伝しときます。
超自己満足プログラミング

内容はニコニコ動画以外のスクリプトや、メモ書きみたいな感じです。
気が向いたらのぞいてみてください。

このblogも引き続き、更新していきますのでよろしくお願いします。
(最近新しいやつを作れてませんが・・・orz)
posted by favril at 18:58 | Comment(0) | TrackBack(0) | 日記

2009年03月01日

a_year_ago_nicoranking.user.js ver2.0

【2010-02-27 追記】
デザインが壊れ気味だったので修正。

あと、当時の再生数/コメント数/マイリスト数が
いつの間にやらまた取得できるようになってたので、
もとの仕様に直しました。
-------------------------------------------------

ニコニコ動画で1年前のランキングを表示するGreasemonkeyスクリプト:A year ago NicoRanking
を少しバージョンアップしました。

表示させたい位置によって、下記のどちらか1つをインストールして下さい。
インストール:a_year_ago_nicoranking.user.js (表示位置:ページ上部ver.)

インストール:a_year_ago_nicoranking.user.js (表示位置:ページ下部ver.)

変更点:

  1. その動画の【推移を確認】リンクを追加

  2. その動画を登録している公開マイリストページ へのリンクを追加

  3. 以前のものは「デイリー 総合 マイリスト」のランキングページでのみ動作していましたが、それ以外のデイリーランキングページでも動作するように修正

  4. 同じ日に取得したランキング情報は、キャッシュするように修正

  5. 「もっと見る」リンクの飛び先を、公式のページに修正


20090301.jpg

既に1ヶ月近く前ですが、ニコ動公式が過去のデイリーのランキングを公開しました。
それに伴って、ランキング情報の取得先をニコチャート様から、ニコ動公式に変更しています。
ニコチャート様、今までありがとうございました <(_ _)>


【2009-03-03 追記】
「ユーザスクリプトを実行するページ」として、インストール時に設定されている「http://www.nicovideo.jp/ranking/*/daily/*」を編集して、「http://www.nicovideo.jp/ranking/*」としても正常に動作するように変更。
(上記のように設定を変更すると、「デイリー」以外の「毎時」「週間」「月間」「合計」のランキングページにおいても、1年前のデイリーのランキングが表示されるようになる。
初期設定のままだと、「デイリー」のランキングページでのみ1年前のランキングが表示される。)



~* 履歴 *~
【2009-10-01】
1年前の日付を計算する部分がバグっていたので修正しました。

【2009-11-01 追記】
ニコニコ動画(9)に対応。
ニコニコの仕様変更に伴い、当時の再生数/コメント数/マイリスト数が
取得できなくなりましたので、その部分の表示を少し変更しました。
posted by favril at 19:02 | Comment(3) | TrackBack(0) | Greasemonkey

2008年11月27日

はてなブックマークの人気エントリーのタイトルを省略せずに表示するGreasemonkeyスクリプト

【2010/08/22 追記】
動いてなかったので修正

【2009/11/01 追記】
[本文へ](現在は「続きを読む」)のリンクが無くても動作するように微修正。
-------------------

はてながリニューアルされましたが、
ホットエントリのタイトルが省略されているのがとても気になったので作りました。
show_full_title_of_hotentry.user.js

要するに、↓が
20081127.jpg

↓になります。
20081127_2.jpg


(※) [本文へ] というリンクがないエントリがたまにありますが、そのタイトルに対しては無効です。
(2009/11/01)
posted by favril at 04:15 | Comment(2) | TrackBack(0) | Greasemonkey

2008年10月07日

Turn off Nicomment: ニコニコ動画のコメントをデフォルトで非表示にするGreasemonkeyスクリプト

【2011-04-04 追記】
firefox4用に修正(firefox3だと動かないです。)
var player = unsafeWindow.document.getElementById('flvplayer');
と書き換えるとfirefox3でも動きます
----------------------

タイトル通りのやつです。
turn_off_nicomment.user.js
(※)Greasemonkeyのバージョンが、0.8以上である必要があります。

画像必要ないけど、文字だけってのもさみしいので、一枚貼っとく。
20081007.jpg
動画のページを開いたときに、コメントを非表示に。
repeat設定みたいに、動画をまたいで設定を持っててくれれば、こんなのいらないのになぁ。
まぁ、コメントあってこそのニコニコだとは思いますが。


今回のスクリプトは、ライブラリを使ってみていて、
自分で書いた部分は無いと言っていい感じ。

有名だとは思いますが、とっても便利です。
Greasemonkeyスクリプトからニコニコ動画のFlashプレーヤーを操作するライブラリ(バージョンアップ)
Greasemonkeyスクリプトに自動更新機能をお手軽に付ける

-----
変更履歴

【2009-05-01 追記】
新プレイヤーに対応 (旧プレイヤーでも動きます)

【2009-11-01 追記】
いつの間にかインストールできなくなってたっぽいので直しました <(_ _)>
旧プレイヤーっていつの間にかなくなったんですかね?
oldplayer=1 を付けても旧プレイヤーにならない。。。
posted by favril at 03:44 | Comment(17) | TrackBack(0) | Greasemonkey

2008年09月16日

ニコニコ動画のメニューバーに、mylistへのリンクを追加するGreasemonkeyスクリプト

【2010-02-28 追記】
デザイン変更に対応。
----

タイトルの通りのやつです。
add_mylist_link.user.js

↓のように、メニューバーにマイリストのプルダウンが追加されます。
20090727.PNG
選択するとそのマイリストのページに飛びます。

マイリストのページに行くのに、マイページをはさまなくてよくなるというもの。



~* 履歴 *~
【2008-10-16 追記】
ニコニコ動画(秋)に対応。

【2008-10-30 追記】
デザイン変更に対応。

【2009-07-27 追記】
頂いたコメントの件を修正。

【2009-11-01 追記】
ニコニコ動画(9)に対応。
ニコニコの仕様変更に伴い、各マイリストの"登録数"は取得できなくなりました。
posted by favril at 03:10 | Comment(11) | TrackBack(0) | Greasemonkey

2008年09月11日

Google TOPのロゴをランダム表示するGreasemonkeyスクリプト

---
【2008-09-14 追記】
バグを修正。
---

暇つぶし的に作成。

Google TOPのロゴ画像を、ここにある画像と入れ替えるスクリプト。
random_google_logo.user.js

20080911_thumb.jpg
常に、過去の記念日のGoogleロゴが表示される。
(たまにGoogle以外のロゴも?)
posted by favril at 01:57 | Comment(0) | TrackBack(0) | Greasemonkey
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。