Posts Tagged ‘ニコニコ動画’

Jetpackで何かを作ってみる(作り方など

最近Jetpackをいじり始めたので、何かを作りながら作り方を学んでみる。

作ったものなど


  1. Copy shorten URL with is.gd
    クリックするとクリップボードに今のURLを短縮したものがコピーされる。
    いわゆるクリップボード機能&ステータスバーに挿入を使ってみたかった。
  2. LDR_StatusBar_Notify
    LDRの未読件数をステータスバーに表示
    LivedoorReader StatusBar Notify
    http://d.hatena.ne.jp/zuzu_sion/20090520/1242900564
    を現在のバージョンで動くように修正しただけです。
    昔のバージョンではimportがなかったり、Jetpackが大文字でも動いてたらしい。
  3. clipboard_display
    クリップボードの内容をステータスバーに表示。

    いわゆるクリップボード機能を使ってm(ry
    クリップボードが変更した際に知らせてくれるようなAPIはなかったのでintervalで回してるだけ。

  4. Nico_make_volume_corrections
    ニコニコ動画で再生開始時にSettingで決めたボリュームにする。

    manifestで設定画面が簡単に作れるのはいい感じ。
    いわゆるGreasemonkey的なものなJetpack
    サイトの範囲を指定するのにはpageModsを使用する
    Labs/Jetpack/JEP/17 – MozillaWiki
    unsafeWindowはwrappedJSObjectを使っちゃってるが、javascript:プロトコルでブックマークレット的にやる方がよいです。
    これがXPCNativeWrapperとunsafeWindowの間でデータを送受信する | へびにっき 参考になります。

JetpackのAPIは
プロファイルフォルダ\extensions\jetpack@labs.mozilla.com\content\js
のjsを読むと何があるか分かる。
解説はLabs/Jetpack/JEPs – MozillaWikiを見て、検索をかける(たいていの場合まめ畑がかかります)

azu さんのjetpackに関するメモに返信 に自分がメモったことに対してteramakoさんからの指摘が書いてあります。
今Jetpackでどんなことがどのようにできるのかが何となく書いてあります。

Jetpack – MDC
https://developer.mozilla.org/ja/Jetpack
簡素だがAPI解説がまとまってる
Jetpack APIリファレンス | Screw-Axis
http://screw-axis.com/jetpack/jetpack-api-referencejetpack-api-reference/
ちょこっと古いけどわかりやすい
[Jetpack] – Cli@
http://d.hatena.ne.jp/efcl/searchdiary?word=%2a%5bJetpack%5d
なんかリンクいろいろ
30分で作るJetpack Feature (1) 概要 – JavaScriptとかPerlとかPHPとかさくらとか勉強する
http://d.hatena.ne.jp/lesamoureuses/20090715/1247637734
チュートリアル

JetpackにはSlideBarという機能もあるが今回全く触れてない。
All-in-One  Sidebarみたいなものを使えるらしい。


ニコニコ動画のマイリストページに共起タグクラウドを表示するGreasemonkey

ニコニコ動画の検索ページに共起タグクラウドを表示するChrome用ユーザスクリプト作ってみた – あたご型護衛艦日記
http://d.hatena.ne.jp/aTaGo/20100112/1263285275

という便利なものがあったので公開マイリストページにもタグクラウドを表示するGreasemonkeyを書いてみた。

// ==UserScript==
// @name           Mylist TagCloud
// @namespace      http://efcl.info/
// @include        http://www.nicovideo.jp/mylist/*
// ==/UserScript==
evalInPage(function(){

	var as = my.currentItems
	var ids = "";
	if(as.length > 1){
		insertcallback();
		for(var i = 0; i < as.length; i++){
			var smid = as[i].item_data.video_id;
			ids += smid + "+";
		}
		//console.log(ids);
		var uri = "http://nicotag.sakura.ne.jp/getcollocationtag.php?smid=" + ids + "&rand=" + Math.floor(Math.random()*1000);;
		calljsonp(uri);
	}

function calljsonp(uri){
	var scr = document.createElement('script');
	scr.type = "text/javascript";
	scr.src = uri;
	document.body.appendChild(scr);
}

function insertcallback(){
	var callscr = document.createElement('script');
	callscr.type = "text/javascript";
	callscr.text = ''
			+ 'function callback(val){'
			+ 'var footer = document.querySelectorAll("div#SYS_box_mylist_body");'
			+ 'var foot = footer[0];'
			+ 'var div = document.createElement("div");'
			+ 'div.innerHTML = val;'
			+ 'foot.parentNode.insertBefore(div, foot);'
			+ '}';
	document.body.appendChild(callscr);
}
})
function evalInPage(fun) {
  location.href = "javascript:void (" + fun + ")()";
}

JSONPでしか取得できないような気がしたので、ほぼそのままな感じ。
確かめてないけどChromeでも動くかも。

ニコニコ動画のマイリストページに埋め込まれている情報(DOM)

ニコニコ動画の再生ページに埋め込まれている情報 | Web scratch のマイリストページ版みたいなものです。
マイリストにもAPIがありますが(ニコニコ動画のAPIまとめ | Web scratch )マイリストページにいるならば、わざわざAPI叩かなくてもいろんな情報が取得できます。
なんでわざわざDOMから情報を取ってるかというと、変更の影響を受けにくかったりするからです。
ここでのマイリストは人が公開してるマイリストのこと。

my
	Mylist.groupList
		id (number): マイリストID
		user_id (number): マイリストのユーザーID
		name (string): マイリストのタイトル
		description (string): マイリスト説明文
		public (boolean): true // 公開状況
		default_sort (number): 1 (1-17)
		create_time (number): UNIX時間(util.unix2で戻せる)
		update_time (number): UNIX時間
		icon_id (number): 0
		sort_order (number): 0
	my.currentItems
		[0]...配列
			item_type (number): 0
			item_id (string): 接頭辞がない動画番号(常時)
			description (string): マイリスト登録者による説明文
			item_data
				video_id (string): 接頭辞がある動画番号(sm数字)
				title (string):  動画タイトル
				thumbnail_url (string): サムネイルURL
				first_retrieve (number): 投稿日時(UNIX時間)
				update_time (number): 更新日時(UNIX時間)
				view_counter (string): 再生数
				mylist_counter (string): マイリスト数
				num_res (string): コメント数
				group_type (string): default
				length_seconds (string): 再生時間(秒)
				deleted (string): 0 (削除状態0-3?)
				last_res_body (string): 最近のコメント(文字列)
				watch_id (string): 接頭辞なしの動画番号(コミュ、マイメモリー以外だと接頭辞がある)
			watch (number): 0
			create_time (number): マイリスト登録日時(UNIX時間)
			update_time (number): マイリスト更新日時(UNIX時間)

Firebugなどから、console.dir(my)などして構造を確認しておくといいです。
DOMから動画情報を取得するのを少しだけ手助けする関数群を置いておきます。(思ったより役に立たない)

(function () {
	var w = unsafeWindow;
	Mylist = {
		// マイリストの属性
		/*
		Mylist.groupListのツリー
			id (number): マイリストID
			user_id (number): マイリストのユーザーID
			name (string): マイリストのタイトル
			description (string): マイリスト説明文
			public (boolean): true // 公開状況
			default_sort (number): 1 (1-17)
			create_time (number): UNIX時間(util.unix2で戻せる)
			update_time (number): UNIX時間
			icon_id (number): 0
			sort_order (number): 0
		*/
		// Mylist.groupList - my.CurrentGroupのコピー
		groupList: function () {
			return w.my.currentGroup;
		},
		/*
		my.currentItemsのツリー
			item_type (number): 0
			item_id (string): 接頭辞がない動画番号(常時)
			description (string): マイリスト登録者による説明文
			item_data
				video_id (string): 接頭辞がある動画番号(sm数字)
				title (string):  動画タイトル
				thumbnail_url (string): サムネイルURL
				first_retrieve (number): 投稿日時(UNIX時間)
				update_time (number): 更新日時(UNIX時間)
				view_counter (string): 再生数
				mylist_counter (string): マイリスト数
				num_res (string): コメント数
				group_type (string): default
				length_seconds (string): 再生時間(秒)
				deleted (string): 0 (削除状態0-3?)
				last_res_body (string): 最近のコメント(文字列)
				watch_id (string): 接頭辞なしの動画番号(コミュ、マイメモリー以外だと接頭辞がある)
			watch (number): 0
			create_time (number): マイリスト登録日時(UNIX時間)
			update_time (number): マイリスト更新日時(UNIX時間)
		*/
		// Mylist.itemList - my.currentItemsのコピー
		itemList : function(){
			return w.my.currentItems;
		},
	}

	// utility関数群
	utils = {
	  playlength : transPlaylength,
	  unix2 : unixTodate,
	  clone : clone,
	}

	// 再生時間を分秒に変換
	function transPlaylength(length){
		return (length / 60).toFixed(2).toString().split(".").join("分") + "秒";
	}
	// 10桁の数字(UNIXTIME)から2009/10/1 00:00形式で返す
	function unixTodate(x){
		var t=new Date(x*1000);
		return t.getFullYear() + "/" + fillZero(t.getMonth() + 1) + "/" + fillZero(t.getDate()) + " " + fillZero(t.getHours()) + ":" + fillZero(t.getMinutes()) + ":" + fillZero(t.getSeconds());
	}
	// http://d.hatena.ne.jp/javascripter/20080514/1210791575
	// 先頭を0で埋める デフォルト2桁
	function fillZero(num , digit){
		var n = (digit) ? digit : 2;// デフォルト値
		var zero=new Array(n).join('0');//0をn-1文字分つなげた文字列を作る。n==4だと'000'
		var str=zero+num;//zeroとthisをくっつけた文字列を作る。
		var result=str.substr(-n);//strの後ろから、n文字分の文字列を取ってくる。
		return result;
	}
	// オブジェクトのコピーのコピーを作成
	function clone(obj){
		return (typeof uneval == "function") ? eval(uneval(obj)) : false;
	}

})();

gist: 239541 – GitHub

どんな風に使うかというと、上の関数群を読み込んで使用します。
DOMへのアクセスをするものと少しのutility関数群から構成されています。
再生時間を分秒に直したり、UNIX時間で格納されている時間を2009/10/1 00:00形式に直したりするだけです。

// ==UserScript==
// @name           Nico mylist Test
// @namespace      http://efcl.info/
// @include        http://www.nicovideo.jp/mylist/*
// @require        http://gist.github.com/raw/239541/1dab27439133948bd6309f4ba959921a8ce938b9/NicoMylistDom.js
// ==/UserScript==
var t = Mylist.itemList();// DOM my.currentItemsにアクセス
var cpObj = utils.clone(t);// オブジェクトのコピー作成(元の値を残す)
console.log(cpObj.length)
for(var i =0,l =cpObj.length;i<l;i++){
  console.log(i + " : " + cpObj[i].item_data.title + "投稿日 : "+ utils.unix2(cpObj[i].item_data.first_retrieve))
}
cpObj[i-1].item_data.title = "buzz";//コピーしたものを書き換える
console.log(t[i-1].item_data.title)// 元のDOMには影響ない

上の関数群のテスト例です。インストールしてマイリストページに行くとコンソールに例が表示されるので参考にどうぞ

ニコニコ動画のAPIまとめ

ニコニコのマイリスト周りにAPIがいろいろ増えていたので、列挙してみる。
使い方は http://res.nimg.jp/js/nicoapi.js をよく読む。
見方としては

分別
    メソッド名
        URL(http://www.nicovideo.jp/api/foo/bar という感じで使う)
            クエリー(それぞれの要素を&でつなげて指定)
    返ってくるもの

という感じで書いている。

Cathode Music: ニコニコ動画(9)APIを纏めた
http://tewi.blogspot.com/2009/11/9api.html

も併せて読む。

書き方の一例(testという名前のマイリストを新規作成する)

Nico make mylist ←のブックマークレットをニコニコ動画上で実行する

var token = NicoAPI.token;
location.href = “http://www.nicovideo.jp/api/mylistgroup/add?name=test&description=&public=1&default_sort=1&icon_id=0&token=”+token;

APIのURLに引数となるクエリーを&区切りでつなげていったURLにアクセスすると正否を表すjsonが返ってくる。
書き込み権限が必要なAPIにはtokenも必要となる。
tokenはNicoAPI.token = “xxxxx-xxxxx-xxxxxxxxxxxx”という感じでページに埋め込まれているので、
Greasemonkeyからならvar  token = unsafeWindow.NicoAPI.token で取得できるはず。

基本的に返ってくるものはjson形式

適当にパラメータの説明

  • item_typeは0であることがほとんどらしい。
  • item_idは接頭辞のない数字だけの動画番号を指定する
  • id_listは id_list[0][]=item_id という感じのパラメータになる
NicoAPI.Deflist
とりあえずマイリスト
    list
    とりあえずマイリストの一覧を取得
        "/api/deflist/list"
	jsonフォーマットで返ってくる

    add
    とりあえずマイリストに追加
        "/api/deflist/add",
    			{ "item_type": item_type,
    			  "item_id": item_id,
    			  "description": description }
	item_typeは接頭辞のない数字だけの動画番号を指定する

    update
    とりあえずマイリストを更新
    	"/api/deflist/update",
    		{ "item_type": item_type,
    		  "item_id": item_id,
    		  "description": description }
	item_typeは0であることがほとんどらしい。

    remove
    とりあえずマイリストから削除
        "/api/deflist/delete",
            { "id_list": id_list }
    move
    とりあえずマイリストから移動
        "/api/deflist/move"
    			{ "target_group_id": target_group_id,
    			  "id_list": id_list }
    copy
    とりあえずマイリストからコピー
        "/api/deflist/copy"
            { "target_group_id": target_group_id,
    			  "id_list": id_list }
    			  
NicoAPI.MylistGroup
マイリスト
    list
    jsonフォーマットでマイリスト一覧を取得
    マイリストの名前やidなど(中身はNicoAPI.Mylistで)
        "/api/mylistgroup/list"
    get
    指定したマイリストIDの詳細を取得
    listに含まれてるのと同じ内容?
        "/api/mylistgroup/get"
            { "group_id": group_id }
    add
    マイリストを新規作成
        "/api/mylistgroup/add"
			{ "name": name,
			  "description": description,
			  "public": is_public,// 0:非公開 1:公開
			  "default_sort": default_sort,
			  "icon_id": icon_id }
    update
    マイリスト情報を更新
         "/api/mylistgroup/update",
			{ "name": name,
			  "description": description,
			  "public": is_public,
			  "default_sort": default_sort,
			  "icon_id": icon_id }
    remove
    マイリストを削除する
	    "/api/mylistgroup/delete",
	        { "group_id": group_id }
	sort
	マイリストのソートの実行
	マイリスト情報の"default_sort"で指定したソート法でソートし直す
	    "/api/mylistgroup/sort"
	        { "group_id_list": group_id_list }

icon_idの指定

ss-2009-11-12-20-25-10

左から順に0,1,2,3となっていて 数字で指定

default_sortのソート法の指定

ソート方法 ID
登録が古い順 0
登録が新しい順 1
メモ昇順 2
メモ降順 3
タイトル昇順 4
タイトル降順 5
投稿が新しい順 6
投稿が古い順 7
再生が多い順 8
再生が少ない順 9
コメントが新しい順 10
コメントが古い順 11
コメントが多い順 12
コメントが少ない順 13
マイリスト登録が多い順 14
マイリスト登録が少ない順 15
時間が長い順 16
時間が短い順 17
NicoAPI.Mylist
マイリストの動画操作
	list
	指定したマイリストの動画一覧を取得
		"/api/mylist/list",
			{ "group_id": group_id }

	add
	指定したマイリストの動画を加える
		"/api/mylist/add",
			{ "group_id": group_id,
			  "item_type": item_type,
			  "item_id": item_id,
			  "description": description }

	update
	指定したマイリストの動画情報を更新
		"/api/mylist/update",
			{ "group_id": group_id,
			  "item_type": item_type,
			  "item_id": item_id,
			  "description": description }

	remove
	指定したマイリストの動画を削除
		"/api/mylist/delete",
			{ "group_id": group_id,
			  "id_list": id_list }
	id_listの形式
		function make_id_list(item_type, item_id) {
			var id_list = {};
			id_list[item_type] = jQuery.makeArray(item_id);
			return id_list;
		}

	move
	指定したマイリストの動画を別のマイリストに移動
		"/api/mylist/move",
			{ "group_id": group_id,
			  "target_group_id": target_group_id,
			  "id_list": id_list }
	例)

http://www.nicovideo.jp/api/deflist/move?id_list%5B0%5D%5B%5D=動画番号&target_group_id=マイリスト番号&token=トークン

	指定したマイリストの動画を別のマイリストにコピー
	copy
		"/api/mylist/copy",
			{ "group_id": group_id,
			  "target_group_id": target_group_id,
			  "id_list": id_list }
NicoAPI.Watchitem
ウォッチリスト
	list
	ウォッチリストの一覧を取得
		"/api/watchitem/list"
	watchitem配列にウォッチリストに登録したユーザー名やIDが入っている

	exist
	ウォッチリストのitem確認
		"/api/watchitem/exist",
			{ "item_type": item_type,
			  "item_id": item_id }

	add
	ウォッチリストに加える
		"/api/watchitem/add",
			{ "item_type": item_type,
			  "item_id": item_id }

	remove
	ウォッチリストから削除する
		"/api/watchitem/delete",
			{ "id_list": id_list }
NicoAPI.Mymemory
マイメモリー
	list
	マイメモリーに入れている動画一覧を取得
		"/api/mymemory/list"

	remove
	マイメモリーからid_listで指定した動画を削除
		"/api/mymemory/delete",
			{ "id_list": id_list }

NicoAPI.Friendlist
フレンドリスト
	list
		"/api/friendlist/list",
			{ "sort": options.sort,
			  "order": options.order,
			  "offset": options.offset,
			  "count": options.count }

	remove
		"/api/friendlist/delete",
			{ "target_user_id": target_user_id }
NicoAPI.Mylistcomment
マイリストコメント
	list
		"/api/mylistcomment/list"
			{ "item_type": item_type,
			  "item_id": item_id }
	nicoapi.jsには書いてないので、この指定方法が正しいか分からない。
	json形式でマイリストが返ってくる

実際にこのAPIを叩くと
{“mylistcomment”:&#91;&#93;,”status”:”ok”}
のような空が返ってきてしまう。正しく取得する方法があればお知らせ下さい。

	例) sm9 のマイリストコメントを取得

http://www.nicovideo.jp/api/mylistcomment/list?item_type=0&item_id=1173108780

	item_typeは0でないといけないらしい。
	item_idには接頭辞のない動画番号を指定。

例)Greasemonkeyからマイリストコメントのコメントを取得

getMylistcomments(function(res){
	console.log(res)
});

function getMylistcomments(callback){
	var itemId = document.getElementsByName("thread_id")[0].value;
	GM_xmlhttpRequest( {
		method : 'GET',
		url : "http://www.nicovideo.jp/api/mylistcomment/list?item_type=0&item_id=" + itemId,
		headers :  {
			'User-Agent' : 'Mozilla/5.0 Greasemonkey; Nico MylistComments'
		},
		onload : function (res) {
			var jsObject = JSON.parse(res.responseText);
			var l = jsObject.mylistcomment.length;
			var result = [];
			if (jsObject.status == "ok" && l > 0) {
				for(var i =0;i<l;i++){
					result.push(jsObject.mylistcomment[i].description)
				}
				callback(result)
			}
		}
	});
}
	remove
		"/api/mylistcomment/delete",
			{ "item_type": item_type,
			  "item_id": item_id,
			  "comment_user_id": comment_user_id }

FirebugのDOMタブが壊れた(競合)

最近になってFirebugのDOMタブで要素をクリックしてもその下の要素が展開されなくなったので、何かのアドオンと競合してるのかを調べてみたら、FxIFというEXIFを見るためのアドオンが原因だと分かった。
FxIFを外すか、過去のバージョンにするかで回避できた。

もう一つ、こっちは競合というわけではないけど、ニコニコ動画がリニューアルしてからマイリストにアクセスするとFirefoxが固まってフリーズするようになってしまった。
こちらの原因It’s All Text!というテキストエリアをエディタで編集するアドオンを外す事で解消された。
多分Javascriptで動的に表示させるようになったのが要因になって、変な動作をするようになったのかな。

ニコニコ動画のマイリストのファビコンを動画総数にするGreasemonkey

ニコニコ動画のマイリストにアクセスしたときに、タブのファビコンをマイリストに入ってる動画総数にするGreasemonkeyです。
ファビコンに動画総数が入るので何かの目安になるかもしれません。

縦置きタブバー上での表示

縦置きタブバー上での表示

そこまで実用性はないと思います。
単にやってみたかっただけです。

元ネタ

LDRの未読数をfaviconに表示するGreasemonkeyスクリプト – 素人がプログラミングを勉強するブログ
http://d.hatena.ne.jp/javascripter/20080609/1212968037

AS2からAS3への変化(wrapper的に)

flvplayer wrapperというニコニコ動画のプレイヤー(旧)をハックして、便利にするソフト(swf)を作っていた。
仕組みとしてはAS2の時代では、親となるオブジェクトは他のオブジェクトを子として読み込めば、
子は親になすがままで、自由に命令や変数を上書きできていたのを使っていた。
この場合はwrapperがニコニコ動画のプレイヤーを読み込めば、ニコニコ動画のプレイヤーを自由に改変でき、元々あるものはそのまま利用できた。
しかし、AS3ではJavaのようにClass毎にアクセス制御ができたため、いくら親であっても、
子を自由にいじれることはできなくなっため、元々あるものをwrapする事に意味がなくなった。
これを打開するにはニコニコ動画のプレイヤー(新)を丸ごと置き換えるプレイヤーを作るか、
上手く打ち破る方法を見つけるかとなるため手詰まり状態になった。

簡単に例えると
AS2の時代では、社長があれこれ自由にできて、社員は逆らえなかったけど、
AS3の時代では、社長は社員に対して自由に命令することはできなくなり、
何か部署を経由したりして、ある程度制限のきいた範囲の命令ができなくなってしまった。

そんな感じ

ニコニコ動画で再生ページのタグを使い、はてブまたはdel.icio.usに登録するGreasemonkey

ニコニコ動画の動画をはてなブックマークやdel.icio.usに登録するときに、
動画についているタグをそのまま使いたい場合はありませんか?
NicoVideo Post to SBM with selected tagsは動画をSBM(Social BookMark)に登録するのを手助けするGreasemonkeyです。
インストールはこちらからしてください。

設定方法は上のページにも詳しく書いてありますが、こちらにも書いておきます。
まずポスト先として利用できるサイトははてなブックマークdel.icio.usになっており、同時に両方にポスト(クロスポスト)することも可能です。
また選択したタグをニコニコ動画で検索することもできます。(NicoVideo Multiple Tag Search Toolと同じ機能です)

e9a098e59f9fe68c87e5ae9a-32769-2009-05-05-1

ポスト先の設定

  1. del.icio.usを使う場合
    del.icio.usを使う場合は

    var useDelicious = true;
    
    

    にすれば、ポスト時にAPIのプロンプトが出現するので、ユーザー名とパスワードを入力するだけで大丈夫です。

  2. はてなブックマークを使う場合

    ポストするためにhatebu_poster.user.jsが必要になります.。
    hatebu_poster.user.jsははてなブックマークにポストするためのテンプレートみたいなGreasemonkeyです(他のGreasemonkeyが手抜きできる。)
    インストールしたら

    という順番になるようにGreasemonkeyの管理画面でAltキーを押しながら並び替えてください。
    そして、NicoVideo Post to SBM with selected tagsをテキストエディタで編集します。

    var useHatena = {
          "isUse" : true,// 使用するか
          "userName" : "",//ユーザー名
          "password" : ""//パスワード}
     を各自埋めてください。
    

両方ともonにした場合はクロスポストされます。

タグの置換

タグの置換機能とは、ポスト時に選択したタグをreplaceListsの内容に従って置換する事ができます。
使うにはまず
var useReplaceList = true;
にして、すぐしたのreplaceListsを自分に合わせて変更します。
var replaceLists = {
“裸で何が悪い” : “裸だったら何が悪い”,
}
この場合は裸で何が悪い→裸だったら何が悪い に置換されます
増やす場合は”置換したいタグ” : “置換した結果のタグ”‘,   の形で足していく。(カンマを忘れずに)

設定自体は以上で完了です。

ポスト方法

ポスト方法は、ポストしたいタグを選択した状態で、タグのところにあるPOSTボタンを押して、
テキストエリアにコメントや追加したいタグを書いて、もう一度POSTボタンを押すことでポストできます。
(テキストエリア内でCtrl + Enterのショートカットでもポストできます)

タグの新規追加

再生ページに必ずしも使いたいタグがない場合は自分で任意のタグを追加(SBMに対して)してポストできます。
コメント入力部に特定の書式でタグを書くことにより追加できます。
[tag1 tag2][tag3]コメント内容[tag4]
を例とすると、タグとして扱われるのは[]で囲まれた範囲を半角スペースで区切った物が一つのタグとして扱われます。
基本的には以下のようにタグを書くといいと思います。

[tag1][tag2]コメント
[tag1 tag2]コメント

どちらもtag1とtag2というタグが追加される。
以上で説明は終了。

※注意
NicoVideo Multiple Tag Search Tool for Greasemonkeyと同じ機能も持ってるので、併用しない方がいいです。

NicoVideo Post to SBM with selected tags
http://userscripts.org/scripts/show/48046

NicoVideo Multiple Tag Search Tool for Greasemonkeyを元に改造させてもらっています。(感謝)

NicoVideo Multiple Tag Search Tool
http://userscripts.org/scripts/show/41650

最近修正したり、自分用に書き換えたGreasemonkeyメモ


リンク先でrawに行って、URLの最後がgistfile1.txtとかなってるので、これに.user.jsとか付け加えればインストールできると思う。

リンク先でrawをクリックするだけでインストールできるようにしました。

nicothumbcatch
http://gist.github.com/61792

ニコニコのランキングでサムネイルだけを表示する。

favlist++
http://gist.github.com/55041

favlistを少し改造したもの。マイリストページにリンクを表示する(favlistと併用可能)。後は削除ボタンとか付け足しただけ。
favlist++はマイリストをマイリストする目的で使ってるので、あんまり意味はないかもしれない。(登録ボタンはマイリストのタイトルのとこに★がでる。

easy I’m reading now
http://gist.github.com/42490

easy I’m reading nowのTweetBurner版

Add Mylist Link
http://gist.github.com/68786
ニコニコ動画のメニューバーに、mylistへのリンクを追加するスクリプト
値をローカルに保持するようにして、任意で更新できるように改変
ShowStatusSequence
http://gist.github.com/58147

個別 post のページを開いたとき、それを含むユーザページに移動し、文脈を把握できるようにする

Nested Twitter Replies
http://gist.github.com/79915

httpsの時にアイコンがデフォルトになるバグ直した。

mata samune
http://gist.github.com/79886

動いてなかったので。
Twitterでニコニコ動画のリンクからサムネイルなどを表示

nicovideo Thumbinfo popup
http://gist.github.com/74201

nicovideo Thumbinfo popupをいつもながら勝手に更新。
APIをextの方にしたのとサムネイルにもリンクを貼るようにした。
後は選択範囲の誤爆を軽減


ニコニコ動画の再生ページから投稿者の公開動画一覧(myvideo)を探すGreasemonkey

タイトルそのままですが、動画からその動画の投稿者が投稿した動画一覧のページへのリンクを作るGreasemonkeyスクリプトです。
前提として投稿者がマイリストを公開している必要がありますので、人によっては取得できません。
cap0012

gist: 67327 – GitHub
http://gist.github.com/67327


プロフィール: azu(あず)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Vista
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク
あわせて読みたい