ニコニコ動画のプレイヤーを操作するChrome拡張を作ってみた
最近になって、やっと色々やる時間が取れるようになってきた(この業界では暇な部類に入る現場)ので、色々出来ていなかったことをやってみようキャンペーンで、今まで触っていなかったものにチャレンジしてみています。
突然話は変わりますが、最近Firefox+keysnailから、Chromium+Vichromeにブラウザ環境を変えました。理由は・・・Firefox利用時に突然PCがフリーズする頻度がやたらと増えたためです。原因はさっぱり分かっていませんが、とりあえずChromiumだとほとんど発生しないのと、Chromiumでもvimperator/keysnailライクな拡張が出来ていたので、移行を決意した次第です。
さて、大半の拡張とかはChrome web storeで入手できますし、私の環境ではevernote拡張がChromium版しかまともに動作してくれないので、こっちの方が実は快適だったりしますが、一点だけ不満?が。
ここでやっとタイトルに戻りますが、タイトルにあるとおり、探し方が悪いのかもしれませんが、拡張の中にプレイヤーを操作するような拡張が存在していませんでした。マイリストとかを制御するようなのはありましたが。Firefox+keysnailのときには、keysnailの拡張でそういうのがありましたが、どうにもChrome使っている人でそういう人はいないようで・・・。
私のデスクトップはXMonadですので、できるだけキーボードを触っているときはキーボードだけで用を済ませたいため、探してもないのなら、ちょうどいい機会だし作るかー、ということで初めてのChrome拡張の作成と相成りました。
機能について
基本的にこの拡張について、あまり公開する気はない(自分で使えりゃいいよね)感じなので、もし利用されたい方は、以下のリンクからcrxファイルを落として来てください。
さて、機能的には以下しかありません。オプション画面くらい用意しろというのは正しいですが、まぁ使えればいい感覚で作ってしまったので・・・。
キー | 割り当て機能 |
p | 再生・停止の切り替え |
v | コメントの表示・非表示 |
m | ミュートの切り替え |
一応中身としては、ボリュームの制御とかもできるようにはしていますが、まぁ通常使いならばこの程度でいいんじゃまいかと思っています。キーバインドを変えるオプションくらいは用意しようかと思います、はい。
作った感想
こういう拡張ってFirefoxとかも含めて初めて作成しましたが、簡単と思うのと面倒と思うのが半々くらいでした。特にしょっぱなから、injectionを利用した拡張を作成したため、全く見通しが立たないまま色々試していった状態でした。最終的には、Keyconfigのソースを参考に(8割くらい丸ごと)して、今回の拡張を作成しました。
ニコニコ動画のプレイヤー制御については、後述するページが大変参考になりました。というかこのページがなかったら作成しなかった感じです。
Chromeの拡張は作り易いが制限が強いとのことでしたが、Firefoxの拡張はどんなもんなのでしょうか。なんか色々支援ツール的なものが出ているようでしたが。
また、一回JavaScriptを直接書いたあと、こちらも初めてCoffeeScriptで書きなおしてみました。CoffeeScript初めてでしたが、RubyとPythonをベースに、関数宣言をHaskell的な感じで書けて、大分楽しく書けました。生のJavaScriptより余程見やすいですな。
終わりに
今回拡張を作ってみようとしたのは、最近の技術からあまりにも隔絶した状態が長く続きすぎている、と感じたためです。今の現場が、Java1.4/COBOLというありがちな環境で、CoffeeScriptですら最新過ぎるのです。
今はさらに色々なものがあるのはわかっていますが、この辺をやるだけで精一杯です。でもやっぱり技術は楽しいですね。(この業界自体に未来が無いというのは別として)
参考にしたページなど
Keyconfigのリポジトリ
GoogleChromeの拡張についての公式?ページ。What are extensions? - Google Chrome
色々参考になりました。第4回 ベータ版に向けたExtension総復習 :続・先取り! Google Chrome Extensions|gihyo.jp … 技術評論社
これが原典です。ニコニコ動画のプレーヤーをJavaScriptから操作するAPI一覧 - kiyohoge