Chrome 拡張機能 · MV3 無料 v1.1.0 YouTube 対応

IMGLAB
Video Speed Control

あらゆるサイトで動画の再生速度を自在にコントロール。ドラッグ可能なオーバーレイ、13個の再設定可能なキーボードショートカット、サイトごとの速度記憶、そして YouTube の SPA ナビゲーションにも完全対応。登録不要・広告なし・完全無料。

対応
サイト数
13
キーボード
ショートカット
0.1×
速度調整
ステップ
0
登録
不要
IMGLAB Video Speed Control — 設定パネル
設定タブ · デフォルト表示

すべての設定をひとつのパネルで

ポップアップを開くと設定タブがデフォルトで表示されます。優先速度・ステップ幅・最小/最大速度・サイクル速度・コントローラーの透明度・サイト別記憶を設定できます。変更はページを再読み込みせず即時反映されます。

  • 優先速度・ステップ(±)・最小/最大速度をすべて設定可能
  • サイクル速度チップ — ワンクリックで追加・削除
  • ヘッダーの速度バッジで − / + をクリックして即時調整
  • 速度バッジをダブルクリック → 1× ↔ 優先速度を切り替え
  • コントローラーの不透明度・非表示起動・サイト別速度記憶
  • 下部に固定された「保存」と「デフォルトに戻す」ボタン
IMGLAB Video Speed Control — ショートカットパネル
ショートカットタブ · 13種のキー設定

すべてのショートカットをポップアップから変更可能

ショートカットタブには13個のデフォルトキー設定が一覧表示されます。キーバッジをクリックすると紫色に変わり「…」が表示されてキー入力を待機します。Escape でキャンセル。行にカーソルを合わせると ↺ リセットボタンが出現します。

  • キーバッジをクリックして記録開始 — 任意のキーを押して保存
  • Escape でキャンセル — 現在のキーは変更されない
  • 巻き戻し・早送り・音量・速度アクションに数値入力フィールド
  • 各行にホバーで ↺ リセットボタンが表示
  • スクロール可能なリスト — 13項目をコンパクトに表示
  • 「設定を保存」後に即時反映
🎛️
ドラッグ可能なオンページオーバーレイ

すべての動画に [ − ] [ 1.50 ] [ + ] [ × ] のコントローラーが自動で表示されます。速度表示部分をつかんでドラッグ移動が可能。ダブルクリックで 1× と優先速度を切り替えます。Shadow DOM 内に構築されているためページのスタイルに干渉しません。

⌨️
13個のカスタマイズ可能なキーボードショートカット

速度アップ・ダウン・リセット・サイクル・巻き戻し・早送り・コマ送り・音量・一時停止 — すべてキーボードで操作可能。ポップアップからすべてのキー設定を変更できます。キャプチャフェーズで割り込むため、ページがキーを奪おうとしても確実に動作します。

🧠
サイト別速度メモリー

サイトごとに速度を記憶します。YouTube は 1.5×、講義サイトは 2×、映画は 1× と、各ホスト名が最後に使用した速度を chrome.storage.sync に保存。初めて訪れるサイトは優先速度から自動で開始します。

🔄
お気に入り速度のサイクル切り替え

B キーでサイクルリストを順番に切り替えます(デフォルト:1.25× → 1.50× → 1.75×)。現在の速度がリストにない場合は最も近い値にジャンプして続行。設定タブから自由にカスタマイズできます。

🎞️
コマ送りナビゲーション

動画を一時停止して , / . でコマ送りができます(30fps 想定、約33ms/コマ)。あらゆるサイトで動作します。YouTube では精度向上のため、これらのキーは YouTube のネイティブ処理に委ねます。

🎯
再生時の速度再適用

YouTube などのサイトは新しい動画の読み込み時に playbackRate をリセットします。IMGLAB は play イベントを監視し、サイトが勝手に速度を変えた場合にすぐ再適用します。意図しない速度リセットがなくなります。

13種のデフォルトショートカット — すべて変更可能

13種のショートカットはすべて <video> 要素があるサイトで動作します。YouTube では矢印・スペース・カンマ・ピリオドなど YouTube が標準で使用するキーは意図的にそのまま渡します。YouTube のシーク animation・+5秒バブル・プログレスバー・キーボード UI がすべて正常に動作します。速度制御キーは YouTube でも常に有効です。

アクションデフォルトキーYouTube
オーバーレイ 表示/非表示 H ✅ 有効
速度を下げる X −0.25× ✅ 有効
速度を上げる C +0.25× ✅ 有効
1× にリセット Z ✅ 有効
優先速度 V 1.5× ✅ 有効
速度サイクル B ✅ 有効
巻き戻し 5秒 ⬛ YT ネイティブ
早送り 5秒 ⬛ YT ネイティブ
一時停止 / 再生 Space ⬛ YT ネイティブ
コマ戻し , ⬛ YT ネイティブ
コマ送り . ⬛ YT ネイティブ
音量アップ +0.1 ⬛ YT ネイティブ
音量ダウン −0.1 ⬛ YT ネイティブ
💡 ⬛ YT ネイティブ — YouTube ではこれらのキーを意図的に YouTube のハンドラーにそのまま渡しています。シークアニメーション・+5秒バブル・プログレスバー更新・キーボード UI がすべて YouTube の意図通りに動作します。拡張機能はプラットフォームと争いません。
内部構造 — 3層アーキテクチャ
1
コンテンツスクリプト ブリッジ (content.js)

Chrome API にアクセスできる隔離された拡張機能コンテキストで動作します。保存済みの設定とサイト別速度を読み込み、<script type="application/json"> データタグ経由でページに渡します。その後 inject.cssinject.js を実際のページコンテキストに注入し、ページと拡張機能の間のすべてのメッセージをブリッジします。

2
ページエンジン (inject.js) — 動画検出 & オーバーレイ

実際のページコンテキストで動作します。querySelectorAll<video> 要素を検索し、小さいサムネイルや YouTube のホバープレビューを除外した上で、各動画に Shadow DOM コントローラーを取り付けます。MutationObserver が動的に追加・削除される動画を監視し、無限スクロール・SPA ルーティング・遅延ロードのプレイヤーにも対応。ロード後 1秒・3秒後にも再スキャンします。

3
Shadow DOM オーバーレイ — スタイル隔離コントローラー

各オーバーレイは Shadow DOM (mode: 'open') 内にレンダリングされ、ページのスタイルから完全に隔離されます。ラッパーには pointer-events: none が設定されているため動画クリックをブロックせず、Shadow 内の #ctrl・ボタン・ドラッグハンドルには pointer-events: auto が設定されてオーバーレイが正しくインタラクティブに動作します。

4
バックグラウンド サービスワーカー (background.js)

chrome.storage.sync の操作全般、サイト別速度メモリー(ホスト名をキーとする sitesSpeeds オブジェクト)、拡張機能ツールバーアイコンの速度バッジを管理します。すべての設定をデバイス間で同期・ブラウザ再起動後も保持します。ポップアップはすべてのストレージ読み書きをサービスワーカー経由で行います。

🎬 YouTube は特殊なケース — 正しく処理しています
🔁
SPA ナビゲーション対応

YouTube はシングルページアプリケーションです。サブページから動画をクリックしても、YouTube は <video> 要素を削除・再追加せず、同じ要素を別の親コンテナに移動します。そのため MutationObserver は反応しません。IMGLAB は YouTube 独自の yt-navigate-finish イベントを監視し、古くなったコントローラー(ラッパーが誤った親に付いている状態)を検出して正しい親に再アタッチし、速度を再適用します。

🚦
ネイティブキーの完全パススルー

YouTube のスペース・矢印・カンマ・ピリオドのハンドラーは実行に 80〜100ms かかります。「80ms 観察してから判断」というアプローチでは、拡張機能と YouTube の両方が同じキー押下を処理してしまいます。タイミングの綱引きをするのではなく、IMGLAB は YouTube ではこれらのキーを完全にスキップします。YouTube のシークアニメーション・+5秒バブル・プログレスバー・コマ送りがすべて正常に動作し続けます。

🖼️
サムネイルプレビュー ガード

YouTube のサムネイルにカーソルを合わせると、カード内でプレビュー動画が再生されます。IMGLAB はこれらへのオーバーレイ取り付けを2段階でブロックします:最小サイズチェック(200×100px 未満)と YTD-VIDEO-PREVIEW 祖先タグの確認。大画面ではサムネイルがしきい値を超えることがあるため、祖先タグの確認が決定的な防御策となります。

ライブ DOM ガード

SPA ナビゲーション中、yt-navigate-finish が発火するまでの短い間、コントローラーの Map に古いエントリが残ったまま動画が移動します。キーボードハンドラーの document.contains(video) チェックにより、この過渡期に古い状態がキーイベントを奪うことを防ぎます。ナビゲーション中も矢印キーは常に YouTube に届きます。

すべてのサイトがあなたの速度を覚えています
youtube.com
1.50×

デフォルトの優先速度 1.5× で視聴。拡張機能アイコンの速度バッジがリアルタイムで更新されます。

udemy.com
2.00×

講義コンテンツは毎回自動で 2× 再生。二度と手動設定する必要はありません。

netflix.com
1.00×

映画は通常速度で。各サイトの速度は独立しているため Netflix の変更が YouTube に影響しません。

new-site.com
1.50×

初めて訪れるサイトは設定した優先速度から自動的にスタート。手動設定は不要です。

💾 速度は { "hostname": speed } の形式で chrome.storage.syncsitesSpeeds キーに保存され、すべての Chrome プロファイルに自動同期されます。設定の「サイト別速度を記憶」をオフにするとグローバルに無効化できます。
⚙️ エッジケースへの賢い対応
🔢
サイクルキーのスマート処理

B でサイクル切り替え。現在の速度がサイクルリストにない場合、findIndex は -1 を返し (-1 + 1) % length = 0 となるため、最初のサイクル速度にジャンプして続行します。リスト外の速度でスタックすることはありません。

⌨️
スマートキー遅延(YouTube 以外)

YouTube 以外のサイトでは、スペース・カンマ・ピリオドに 80ms の観察遅延を使用します。video.paused または currentTime が変化したかを確認し、サイトが処理済みなら何もしません。未処理なら拡張機能が対応します。独自プレイヤーを持つサイトでの二重発火を防ぎます。

🎭
入力中のキーガード

<input><textarea><select>contentEditable 要素に入力中はショートカットが発火しません。isTypingContext() チェックがすべての keydown 前に実行されるため、検索やコメント入力中に誤って速度が変わることがありません。

🔍
遅延ロード動画の検出

最初の scanVideos()DOMContentLoaded で実行され、さらにロード後 +1秒・+3秒後に再スキャンします。MutationObserver がいつでも動的に追加された動画をキャッチします。無限スクロール・iframe 埋め込み・JS レンダリングのプレイヤーを含む、あらゆる動画ロードパターンに対応します。

使用前に知っておいていただきたいこと
🔒
DRM 保護された動画

拡張機能は HTML5 video 要素の video.playbackRate を直接設定します。DRM 保護されたストリーム(Netflix・Disney+・Prime Video など)はプレイヤー SDK によってこの値をリセットすることがあります。これらのサイトでは速度制御が持続しない場合があります。プラットフォームの制限であり、バグではありません。

📐
オーバーレイの位置ズレ

オーバーレイのラッパーは動画の親要素内で position: absolute を使用します。動画の親要素に特殊な position や overflow 設定があるサイトでは、オーバーレイがずれて表示される場合があります。現在は主に YouTube と標準的な HTML5 プレイヤーでテストされています。

🌐
非標準プレイヤー

拡張機能はネイティブの <video> HTML 要素を対象としています。Flash スタイルのオブジェクト・WebGL レンダリング・非標準要素でラップされた動画は検出されません。ただし現代のほとんどの動画サイトはネイティブ video 要素を使用しています。

⚠️
フレームレートの仮定

コマ送りナビゲーションは 1/30秒(33ms)単位で動きます — 30fps を前提としています。24fps・60fps などの場合、ステップ幅が若干ずれます。HTML5 API はブラウザから実際のフレームレートを取得する手段を提供していないためです。

🚀 1分以内に使い始められます
1
Chrome に追加する

上の 「Chrome に追加 — 無料」 をクリック。Chrome ウェブストアから即座にインストールされます。登録不要、必要最低限の権限のみ使用します。

2
動画のあるページを開く

YouTube・講義サイト・ニュースサイトなど、<video> 要素があるページであればどこでも。動画の左上隅にオーバーレイが自動表示されます。

3
C で速度アップ、X で速度ダウン

オーバーレイがリアルタイムで更新されます。V で優先速度にジャンプ、Z で 1× にリセット、B でお気に入りをサイクル。

4
ポップアップでカスタマイズ

ツールバーの IMGLAB アイコンをクリック。設定タブがデフォルトで開きます — 優先速度・ステップ幅・サイクルリスト・コントローラーの透明度を調整できます。ショートカットタブから任意のキーを変更できます。

無料 · オープン · コミュニティに支えられています

IMGLAB を維持・更新し続けるために

IMGLAB Video Speed Control は完全無料です。広告なし・データ収集なし・サブスクリプションなし。YouTube SPA ナビゲーション・Shadow DOM のポインターイベント・スマートキーのタイミング — すべての修正に実際の調査とデバッグ時間がかかっています。皆さんのサポートがその費用を支えます。

🔧
YouTube の SPA 変更やプレイヤーアップデートへの継続対応
Vimeo・Twitch・Udemy など主要動画プラットフォームでのテストと対応
🌱
予定機能:オーバーレイボタンのツールチップ・速度変更時の視覚フィードバック・Firefox 版

1回限り · 金額自由 · アカウント不要 · 30秒で完了

IMGLAB が心を込めて制作 ❤️
Ko-fi  ·  Buy Me a Coffee  ·  [email protected]