Auto hide next up card for Amazon Prime Video v2.9.0/v2.9.1 リリース
Amazon Prime VideoのNext up等の邪魔な要素を非表示にする「Auto hide next up card for Amazon Prime Video v2.9.0/v2.9.1」をリリースしました。
v2.8.1からの変更点
v2.9.0
- Chrome/Firefoxの拡張機能版でlocalStorageではなくchrome.storage.localに設定を保存するように
- 広告をスキップする機能の追加
- Next upの非表示ボタンを自動クリックすると自動再生がキャンセルされる場合がある問題の修正
- 自動再生のフラグをtrueに変更する機能が動作しなくなっていた問題の修正
- 動画終了時に自動的に閉じた場合に次のエピソードを再生する機能が動作しなくなっていた問題の修正
- 動画の音量が複数回復元される可能性がある問題の修正
- Next upの表示フラグをfalseに変更する機能をコメントアウト
v2.9.1
- 強制的に最高画質で再生する機能を使用している場合に再生でエラーが出る場合がある問題の修正
- 不要なコードを削除
4月8日にプライムビデオで広告表示が開始されました。それに伴いいくつかの仕様が変更され、Auto hide next up cardの機能のうちのいくつかで問題が発生したため、v2.9.0/v2.9.1ではその辺りを中心に修正・改善を行いました。
拡張機能版で設定情報の保存にchrome.storage.localを使用するようにしました。これは拡張機能用のストレージです。今まではユーザースクリプト版のことも考慮してlocalStorageのみを使用する設計にしていましたが、localStorageはユーザーが意図せず削除してしまう可能性がありました。その可能性は把握していましたが、拡張機能かユーザースクリプトかを判別して処理を切り替えるコードを書くのが面倒だったので今まで放置していました。それにようやく手を付けた感じです。従来の設定情報についてはlocalStorageからchrome.storage.localに移行されます。
広告スキップについてはプライムビデオ側が広告を表示してからスキップするという感じの機能を提供していないため、「広告分だけ再生時間を進める」或いは「広告表示中のみ再生速度を変更する」のいずれかが現実的な選択肢になります。v2.9.0で実装した広告スキップ機能は前者の方法を取っています。画面左上に残り時間が表示されるのでその時間分だけ動画の再生時間を進めます。なお動画本編をスキップしてしまわないように1500ミリ秒分を残す実装にしています。広告スキップはデフォルトで有効にしています。
※次にリリースする予定のv2.10.0では、通信の監視・改変を実現するxhookを使用して広告関連のデータを除去する機能を追加する予定です。これは広告を無効化する機能で、デフォルトでは無効な状態でリリースする予定です。
4月8日にNext upと自動再生の挙動が変更されました。これまでもエンディングに合わせたNext upとは別に動画終了直前にもNext upが表示されていましたが、4月8日なって後者に動画終了時間に合う形のタイマー付きで非表示ボタンが表示されるようになりました。問題なのは非表示ボタンに関連付けられた処理で、動画終了直前のNext upの方の非表示ボタンは自動再生に紐づくようになったようです。クリックすると自動再生がキャンセルされ、動画終了と同時に動画は閉じてしまいます。v2.9.0の変更履歴にある「Next upの非表示ボタンを自動クリックすると自動再生がキャンセルされる場合がある問題」とはそれのことです。v2.9.0では非表示ボタンが出現した場合に動画の残り時間を確認して6秒未満なら非表示ボタンはクリックしないという実装で対処しています(つまり自動再生をNext upのタイマーに委ねる)。注意点として、他の拡張機能などで再生速度を変更している場合、タイミングの問題で残り時間の計算などがうまく機能しないことがあるかもしれません。
4月8日にプライムビデオが扱うデータのURLがいろいろと変更されたため、それに伴いAuto hide next up cardではxhookを使用する機能に影響が出ました。「自動再生のフラグをtrueに変更する機能」「動画終了時に自動的に閉じた場合に次のエピソードを再生する機能」についてはv2.9.0で修正しました。「強制的に最高画質で再生する機能」についてはv2.9.1で修正しました。
「Next upの表示フラグをfalseに変更する機能」(Next upを無効化する機能)については使えなくなった可能性が高く、機能を削除する前段階として関連するコードをコメントアウトしました。従来と同じ名前のフラグは4月8日の仕様変更以降も存在しているのですが、falseにしても効果が無く、関係のありそうなフラグなどをいろいろ変えてみても効果が無かったので私としてはほぼ諦めています。
「動画の音量が複数回復元される可能性がある問題」というのは「動画終了時に自動的に閉じた場合に次のエピソードを再生する機能」に関連する処理の問題です。この機能で次のエピソードの再生のためにページのURLを変更する場合、localStorageにある音量値を0に変更し、新しいURLで動画が開かれたら音量を元通りにするという処理を行うようにしているのですが、その処理が複数回実行されてしまう可能性がありました。v2.9.0ではその問題に対処しました。
ディスカッション
コメント一覧
まだ、コメントがありません