Auto hide next up card for Amazon Prime Video - Next up等の邪魔な要素を非表示にするChrome/Firefoxの拡張機能・ユーザースクリプト

2024年3月26日JavaScriptchat_bubble2

Amazon Prime VideoのNext up等の邪魔な要素を非表示にする「Auto hide next up card for Amazon Prime Video」を開発しました。Chromeの拡張機能版、Firefoxの拡張機能(アドオン)版、ユーザースクリプト版があります。いずれも機能は全く同じです。

概要

以下の機能を実装しています。

  • 非表示ボタンの自動クリックとdisplay:noneの設定によるNext upの非表示
    • 非表示ボタンの自動クリック時にオーバーレイ表示を5秒間無効化
    • オーバーレイ表示が有効な時にのみNext upを表示させることも可能
      • デフォルトではこの機能は無効になっており、Next upは完全に非表示
      • この機能はNext upに非表示ボタンが存在しない場合にのみ機能
  • イントロスキップボタンの非表示
    • オーバーレイ表示が有効な時にのみイントロスキップボタンを表示させることも可能
      • デフォルトではこの機能は無効になっており、イントロスキップボタンは完全に非表示
  • レーティング(推奨対象年齢)及びその周辺のオーバーレイ要素の非表示

動画右上にオプションダイアログを開くことができるオプションアイコンが追加されます。オプションダイアログは Alt+P で開くことも可能です。オプションダイアログ上でショートカットキーの変更が可能です。ショートカットキーにはCtrl/Alt/Shiftとアルファベットが使用可能で、Ctrl/Altとアルファベットは必須です。

オプションダイアログ上で設定を変更した後は設定反映のためにページをリロードしてください。

コードは各国のAmazonのページ上で実行されますが、動作テストは日本のPrime Video上でのみ行いました。

Firefox版の注意点

Firefox版もChrome版と同じくManifest V3の拡張機能としてリリースしましたが、FirefoxではManifest V3の拡張機能の権限設定のデフォルトの状態がChromeとは異なるようです。

拡張機能として特定のサイト上でコードを実行させるには拡張機能が要求するサイトへのアクセス権限を有効にする必要があり、Chromeでは拡張機能をインストールした際にデフォルトで有効な状態になります。一方でFirefoxでManifest V3の拡張機能をインストールした場合、サイトへのアクセス権限がデフォルトで無効になっており、ユーザーが手動で有効化する必要があるようです。Firefoxの拡張機能のページにて説明文でも触れていますが、手順としては以下になります。

  1. about:addons を開く
  2. Auto hide next up cardの項目をクリックする
  3. 「権限」タブをクリックする
  4. 「追加機能の任意の権限」に列挙されているアクセス権限を有効にする

開発経緯等

元々は2023年9月辺りにPrime VideoのNext upと自動再生の挙動が変わったことをうけ、単に非表示ボタンの自動クリックとdisplay:noneの設定によるNext upの非表示を行うユーザースクリプト・拡張機能としてリリースしたものが「Auto hide next up card for Amazon Prime Video」でした。

Next upは動画終盤(エンディング等)に差し掛かると右下に表示されるカード(小窓)のことで、クリックするとNext upに表示されている次のエピソードやおすすめのコンテンツに飛べる機能を持っています。また、Prime VideoにおいてNext upと関係のある設定として自動再生の設定があり、自動再生を有効にしている場合かつ次のエピソードが存在する場合には動画の終了に合わせて自動で次のエピソードに飛ぶようになっています(今はそれ+ED強制スキップ)。そして2023年9月辺りに、自動再生を有効にしている場合かつ次のエピソードが存在する場合という条件で「Next upが表示されてから5秒後に次のエピソードに強制的に遷移する」という挙動が追加されました。私としては当初は終了時間の計算をミスったバグだろうと思っていたのですが、2024年3月になっても変わっていないところを見るにこれはAmazonの意図した通りの挙動なのだと思います。

自動再生を無効にした状態であれば強制スキップは発生しないので適当な拡張機能を使ってCSSを適用するだけで何の問題も無くNext upを非表示にすることが可能ですが、自動再生を有効にしておきたい場合(Next upを非表示にしたいかつED強制スキップではなく動画終了時に次のエピソードに遷移して欲しい場合)はCSSでの非表示のみでは強制スキップが無効化出来ません。Next upの非表示ボタンをクリックすることで強制スキップをキャンセルすることは可能で、元々Auto hide next up cardはそれを行うためにリリースしたものでした。

当時、Prime Videoの要素を扱うNetflix Marathon (Pausable)等のユーザースクリプトや拡張機能の実装を軽く調べた限りではNext upの要素の構造はどの国のPrime Videoでも同じっぽいということが分かったので、各国のAmazon及びprimevideo.comでコードが実行されるようにしました。ただし現在も動作テストは日本のPrime Video上でのみ行っているため、amazon.co.jp以外での動作に問題があっても私には対処できないと思います。

v2.0.0では以下の機能を追加しました。

  • 非表示ボタンの自動クリック時にオーバーレイ表示を5秒間無効化
    • 非表示ボタンの自動クリックによって各オーバーレイ要素が表示状態になるため
  • レーティング(推奨対象年齢)及びその周辺のオーバーレイ要素の非表示
  • 設定変更のためのオプションダイアログ
    • 動画右上に追加されるアイコン或いは Alt+P で開くことが可能

v2.1.0では以下の機能を追加しました。

  • "イントロをスキップ"ボタンの非表示

これは2023年12月にPrime Videoにイントロスキップボタンが実装されたことを受けて追加したものです。

v2.2.0では「オーバーレイ表示が有効な時にのみNext up、イントロスキップを表示させる機能」や「オプションダイアログを開くためのショートカットキーの設定」の追加等を行いました。v2.2.0の詳細については別で記事を書いています。


記事更新履歴

  • 2023年10月24日 記事公開
  • 2024年3月26日 記事を書き直し

ブラウザ拡張機能

藤乃音りょう