Chrome拡張機能「Video Speed Controller」が無効になってしまうバグの解決方法

Video Speed Controller

YouTubeやニコニコ動画、アマゾンプライムビデオなど、ブラウザ上のほとんどの動画に対応するChrome拡張機能の「Video Speed Controller」。

直感的に速度変更ができて便利なプラグインなのだが、2019年8月29日時点で、拡張機能が無効になってしまうバグがしょっちゅう発生している。無効になるたびウェブストアで有効にする必要があり、とても面倒・・・。Video Speed Controllerのウェブストアページを見ると、同様のクラッシュが多数報告されていた。Twitterでも同様の声が。

ウェブストアページのコメント欄に書かれていた解決方法は、拡張をローカルで動かすこと。そ、その手があったか・・・!

ということで、コードに少しの変更を加えてローカルから拡張を読み込むと、あっけなく解決した。ただしこれ、あくまでも一時的な解決策なので、本来は開発者本人に修正バージョンを公開してもらうのが一番いい。

対処法の流れとしては次のとおり。

  1. 開発者が公開しているソースコードをGitHubからクローンする
  2. manifest.jsonにコードを1行だけ追加する
  3. ローカルから拡張を読み込む

ソースコードをクローンする

Video Speed Controllerのソースコードは以下のページからクローンできる。

https://github.com/igrigorik/videospeed

開発者に感謝しつつ、ありがたくクローンさせていただく。

なお、「GitHubアカウントを持っていない」「使い方がわからない」場合は、ZIPファイルをダウンロードできる。

GitHubからZIPファイルをダウンロード

manifest.jsonにコードを追加する

「manifest.json」に次の一行を追加する。コンマを忘れないこと。

"update_url": "http://0.0.0.0/",

全体のコードはこちら。追加するコードはどの行に書いてもかまわない。

manifest.json
{
  "name": "Video Speed Controller",
  "short_name": "videospeed",
  "version": "0.5.6",
  "update_url": "http://0.0.0.0/",
  "manifest_version": 2,
  "description": "Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.",
  "homepage_url": "https://github.com/igrigorik/videospeed",
  "icons": {
    "16": "icons/icon16.png",
    "48": "icons/icon48.png",
    "128": "icons/icon128.png"
  },
  "permissions": [ "activeTab", "storage" ],
  "options_page": "options.html",
  "browser_action": {
    "default_icon": {
      "19": "icons/icon19.png",
      "38": "icons/icon38.png",
      "48": "icons/icon48.png"
    },
    "default_popup": "popup.html"
  },
  "content_scripts": [{
      "all_frames": true,
      "matches": [ "http://*/*", "https://*/*", "file:///*" ],
      "match_about_blank": true,
      "exclude_matches": [
        "https://plus.google.com/hangouts/*",
        "https://hangouts.google.com/*",
        "https://meet.google.com/*",
        "https://teamtreehouse.com/*",
        "http://www.hitbox.tv/*"
      ],
      "css": [ "inject.css" ],
      "js":  [ "inject.js" ]
    }
  ],
  "web_accessible_resources": [
    "inject.css", "shadow.css"
  ]
}

これらのことにあまり詳しくない場合、このコードをそのまま「manifest.json」にコピペ・保存しても大丈夫。

ローカルから拡張機能を読み込む

最後に、ファイルが入ったディレクトリ(フォルダ)をローカルからChromeブラウザで使えるように設定する。

Chromeブラウザを開き、右上の「設定」→「その他のツール」→「拡張機能」を選択。

拡張機能をクリック

「デベロッパーモード」をオンにする。

デベロッパーモードをオンにする

「パッケージ化されていない拡張機能を読み込む」をクリックし、さきほどダウンロードして修正したファイルが入っているディレクトリ(フォルダ)を選択する。

パッケージ化されていない拡張機能を読み込む

ブラウザ上にYoutubeのアイコンが表示されていれば成功。

ブラウザ上にYoutubeのアイコンが表示されていれば成功

今回紹介した対処法をしてからは、拡張機能がいきなり無効になることもなく、快適に動画の速度変更ができている。