ニコニコ動画のプレイヤーを操作するChrome拡張を作ってみた

最近になって、やっと色々やる時間が取れるようになってきた(この業界では暇な部類に入る現場)ので、色々出来ていなかったことをやってみようキャンペーンで、今まで触っていなかったものにチャレンジしてみています。

突然話は変わりますが、最近Firefox+keysnailから、Chromium+Vichromeにブラウザ環境を変えました。理由は・・・Firefox利用時に突然PCがフリーズする頻度がやたらと増えたためです。原因はさっぱり分かっていませんが、とりあえずChromiumだとほとんど発生しないのと、Chromiumでもvimperator/keysnailライクな拡張が出来ていたので、移行を決意した次第です。

さて、大半の拡張とかはChrome web storeで入手できますし、私の環境ではevernote拡張がChromium版しかまともに動作してくれないので、こっちの方が実は快適だったりしますが、一点だけ不満?が。

ここでやっとタイトルに戻りますが、タイトルにあるとおり、探し方が悪いのかもしれませんが、拡張の中にプレイヤーを操作するような拡張が存在していませんでした。マイリストとかを制御するようなのはありましたが。Firefox+keysnailのときには、keysnailの拡張でそういうのがありましたが、どうにもChrome使っている人でそういう人はいないようで・・・。

私のデスクトップはXMonadですので、できるだけキーボードを触っているときはキーボードだけで用を済ませたいため、探してもないのなら、ちょうどいい機会だし作るかー、ということで初めてのChrome拡張の作成と相成りました。

機能について

基本的にこの拡張について、あまり公開する気はない(自分で使えりゃいいよね)感じなので、もし利用されたい方は、以下のリンクからcrxファイルを落として来てください。

crxファイル

リポジトリは以下です。
リポジトリ

さて、機能的には以下しかありません。オプション画面くらい用意しろというのは正しいですが、まぁ使えればいい感覚で作ってしまったので・・・。

キー 割り当て機能
p 再生・停止の切り替え
v コメントの表示・非表示
m ミュートの切り替え

一応中身としては、ボリュームの制御とかもできるようにはしていますが、まぁ通常使いならばこの程度でいいんじゃまいかと思っています。キーバインドを変えるオプションくらいは用意しようかと思います、はい。

作った感想

こういう拡張ってFirefoxとかも含めて初めて作成しましたが、簡単と思うのと面倒と思うのが半々くらいでした。特にしょっぱなから、injectionを利用した拡張を作成したため、全く見通しが立たないまま色々試していった状態でした。最終的には、Keyconfigのソースを参考に(8割くらい丸ごと)して、今回の拡張を作成しました。

ニコニコ動画のプレイヤー制御については、後述するページが大変参考になりました。というかこのページがなかったら作成しなかった感じです。

Chromeの拡張は作り易いが制限が強いとのことでしたが、Firefoxの拡張はどんなもんなのでしょうか。なんか色々支援ツール的なものが出ているようでしたが。

また、一回JavaScriptを直接書いたあと、こちらも初めてCoffeeScriptで書きなおしてみました。CoffeeScript初めてでしたが、RubyPythonをベースに、関数宣言をHaskell的な感じで書けて、大分楽しく書けました。生のJavaScriptより余程見やすいですな。

終わりに

今回拡張を作ってみようとしたのは、最近の技術からあまりにも隔絶した状態が長く続きすぎている、と感じたためです。今の現場が、Java1.4/COBOLというありがちな環境で、CoffeeScriptですら最新過ぎるのです。

今はさらに色々なものがあるのはわかっていますが、この辺をやるだけで精一杯です。でもやっぱり技術は楽しいですね。(この業界自体に未来が無いというのは別として)