2015 02 ≪  03月 12345678910111213141516171819202122232425262728293031  ≫ 2015 04


YouTubeなどの動画をmpvで再生するWatch with MPV

- 2015-03-08(Sun) - 

ブログで1年半ぶりになりますが拡張機能を紹介します。Watch with MPV(実際の拡張機能名はmpv-youtube-dl-binding)です。
YouTubeやニコニコ動画などの動画をメディアプレーヤーのmpvで再生します。

対応している動画サイトのページを開いた状態でツールバーに追加されたアイコンをクリックするか、設定で登録しておいたショートカットキーを押すと、その動画をmpvで再生します。動画ページヘのリンクを右クリックしてコンテキストメニューの「Watch with MPV」でリンク先の動画をmpvで再生することもできます。ページに埋め込まれている動画を停止するような機能はなく、URLをmpvに渡すだけです。

利用するには(mpvをインストールしていなければ)mpvをインストールして、そのフォルダにyoutube-dlも置いておきます。さらに、設定の「Native player location」にmpvのパスを記入しておきます。

mpv.exeのパスを指定した場合、未対応の動画サイトなどで再生しようとしてエラーになったときはmpvのウィンドウは表示されず、再生が始まるのかどうかよく分からないことがあります。mpv.exeの代わりにmpv.comのパスを指定しておくと、動画再生前にコマンドプロンプトのウィンドウが表示されます。問題があればエラー表示後にコマンドプロンプトが閉じ、問題がなければmpvのウィンドウが表示されて動画が再生されるので、慣れないうちはmpv.comのパスを指定しておいたほうがいいかも。

何も設定しないとYouTubeでは720p以下&30fps以下のmp4(H.264)動画が再生されるようですが、設定の「Additional player parameters」に「ytdl-format=bestvideo+bestaudio/best」と記入しておくと1080p&60fpsのwebm(VP9)動画も用意されていれば再生できるようになります。YouTubeでは4K動画もありますが、1080pより高解像度の動画が不要な場合は「--ytdl-format=bestvideo[height<=1080]+bestaudio/best」を。さらに、VP9はH.264と比べて負荷が高いので、もしVP9で再生したくない場合は「--ytdl-format=bestvideo[height<=1080][vcodec!=VP9]+bestaudio/best」で。

ちょっと蛇足ですが、ページ内に複数のFlash動画が埋め込まれている場合はClick to per-elementで1つ1つ読み込み&再生していけばいいのですが、HTML5動画では残念ながらClick to Play機能がありませんし、YouTubeのHTML5動画がいくつも埋め込まれているページを開くとFirefoxが数秒間フリーズするくらい重くなるので、このようなケースを体験するとHTML5動画はメリットよりもデメリットのほうが大きいと思ってしまいます。FirefoxでYouTubeの動画がFlashからHTML5へ正式に切り替わったとき、なにも問題にならなければいいのですが。YouTubeの動画をFlashで再生するようになるYouTube Flash Playerを使うのもいいのですが、わたしはこの対策としてYouTube Embed2Linkを入れて、埋め込み動画をリンク化しています。リンク化することでそのページで再生できなくなりますが前述のようなケースでは軽くなりますし、Watch with MPVとの組み合わせで便利になりました。

Firefoxでも近い将来YouTubeのHTML5プレーヤーで60fps表示できるようになりますが、わたしの環境ではコマ落ちして60fpsでませんしVP9ではまともに再生できません。Chromeでは問題ないんですけどね。

以前からmpvを使っていて「FlashやHTML5の代わりにmpvで再生できるようになれば軽くていいだろうなぁ」と思っていたので、わたしにとっては待望の拡張機能です。将来的に解像度やフォーマットを選択してから再生できるようになればもっと便利になりそう。Chromeを使わなくてもYouTubeの1080p/60fps/VP9の動画を見たいって方や、なるべく負荷をかけずに動画を再生したいって方にオススメします。

スポンサーサイト
この記事のURL | 拡張機能 | コメント(0) | トラックバック(0) | ▲ top

RequestPolicyでCSSと画像を読み込むようにする

- 2015-03-01(Sun) - 

RequestPolicyはセキュリティ強化に欠かせない拡張機能の1つだと個人的に思っていますが、未定義のリクエストをすべて禁止する設定にしている場合、JavaScript・CSS・画像などを外部サイトに置いているサイトではそれらのリクエストを許可しておかないとページがまともに表示できないこともあります。サイトごとに設定をするのは面倒なので、RequestPolicyの使用をやめた人もいることでしょう。

リクエストを禁止にしたコンテンツのうち、画像とCSSを読み込むようにすれば多くのページでは崩れずに表示できるようになるはず。セキュリティの観点からも特に問題にはならないでしょうし。

そこで、登録しておいたポリシーに該当しない未定義のリクエストのうち、画像とCSSのリクエストはすべて許可するようにしてみましたので、ここにメモしておきます。

RequestPolicy 1.0Beta8.2
プロファイルフォルダ\extensions\requestpolicy.com.xpi\modules\RequestProcessor.jsm
488行目「request.requestResult = this._checkByDefaultPolicy(originURI, destURI);」の上の空白行のところに下記の8行を追加。

    if (request.aContentType === 3) {
request.requestResult.isAllowed = true;
return this.accept("Allowed to image requests that do not apply to rules", request);
}
if (request.aContentType === 4) {
request.requestResult.isAllowed = true;
return this.accept("Allowed to stylesheet requests that do not apply to rules", request);
}

上記の3は画像、4はCSSのことで、これらの数字の意味は「nsIContentPolicy - Mozilla | MDN」に掲載されています。Webフォントの14や動画/音声の15を追加するのもよさそうですね。なお、画像やCSSのリクエストは強制的に許可するわけではないので、ポリシーに追加することでブロックできます。(RequestPolicy 1.0系はルールに許可とブロックの両方を登録できます)

この改造は昨年のうちにしたのですが、初めて訪れるサイトでリクエストを許可するケースが減り、「使い勝手のことを考えれば最初からこの仕様にしたほうがよかったのでは・・・」と思うことも。RequestPolicy 0.5系では未定義のリクエストはブロックしていましたが、1.0系では設定から許可とブロックのどちらかを選べるようになりましたので、特定のリクエストだけブロックしてほかはすべて許可するような使い方もできますけどね。

今回のようなコンテンツごとの許可/ブロックはバージョン1.0の後に実装される計画になっていますがリリースはまだまだだと思うので、興味がある方は試してみてください。

この記事のURL | 拡張機能 | コメント(0) | トラックバック(0) | ▲ top
 
| メイン |