チュートリアル動画を見ながら、画面に表示されたコードを手で打ち直した経験はありませんか? 特に長い設定ファイルや複雑な正規表現を写すのは時間の無駄です。この記事では、動画の一時停止フレームからコードをテキストとして抽出する3つの方法を、それぞれの制限とともに解説します。
方法1: macOS 標準のスクリーンショットとライブテキストを使う
まずは macOS に標準搭載されている機能から試してみましょう。動画を一時停止した状態で、Shift + Command + 4 でスクリーンショットを撮ります。撮影直後に画面の右下に表示されるサムネイルをクリックすると、クイックルックが開きます。ここでコード部分をドラッグ選択すれば、ライブテキストが認識したテキストをコピーできます。
この方法の利点は、追加のアプリをインストールする必要がないことです。ただし、認識されたテキストはインデントが失われることが多く、ペースト後に手動で整形し直す必要があります。また、特殊文字の誤認識にも注意が必要です。
この方法が使えないケース
ライブテキストは Safari のレンダリングエンジンに依存して動作するため、Chrome、Firefox、Edge、Brave、Arc などのブラウザでは機能しません。また、IINA や VLC などのサードパーティ製動画プレイヤーでも使えません。さらに、スクリーンショットを撮る手間が毎回発生するため、頻繁にコードをコピーする場合には効率的とは言えません。
方法2: 動画アプリ内の字幕・トランスクリプト機能を使う
YouTube や Loom には、動画の字幕や自動生成されたトランスクリプトを表示する機能があります。YouTube の場合、動画の下にある「その他」メニューから「文字起こしを表示」を選ぶと、タイムスタンプ付きのテキストが表示されます。ここからコードらしき部分をコピーできます。
この方法の最大の利点は、OCR を一切使わないため誤認識が発生しないことです。ただし、動画の話者がコードを読み上げている場合に限られます。また、トランスクリプトは話し言葉をそのままテキスト化したものであり、コードのインデントや特殊文字は当然含まれていません。
この方法が使えないケース
動画に字幕やトランスクリプトが用意されていない場合、この方法は使えません。また、画面にコードが表示されているだけで話者が読み上げていない場合も同様です。さらに、Loom のトランスクリプトは英語のみ対応していることが多く、日本語のチュートリアルでは利用できないことがあります。
方法3: Cheese! OCR を使う
Cheese! OCR は、ブラウザや動画プレイヤーの種類を問わず動作する OCR ツールです。デフォルトのホットキーは Shift + Command + E で、設定画面から変更も可能です。動画を一時停止した状態でホットキーを押し、コード部分をドラッグで選択するだけで、認識されたテキストがクリップボードにコピーされます。
Cheese! OCR は Apple Vision フレームワークを内部で使用しているため、認識精度はライブテキストと同等です。スクリーンキャプチャ機能で画面のピクセルを直接読み取るため、Safari 以外のブラウザやサードパーティ製プレイヤーでも問題なく動作します。また、オンデバイス処理のため、インターネット接続は不要で、プライバシーも保護されます。
3つの方法を比較
| 方法 | 最適なケース | 制限 |
|---|---|---|
| スクリーンショット+ライブテキスト | Safari のみを使っていて、たまにコードをコピーする場合 | Chrome など他ブラウザでは使えず、毎回スクリーンショットが必要 |
| 字幕・トランスクリプト機能 | 話者がコードを読み上げている動画で、誤認識を避けたい場合 | トランスクリプトが存在しない動画では使えず、インデントは再現されない |
| Cheese! OCR | ブラウザを問わず、頻繁にコードをコピーする場合 | Apple Vision の誤認識パターン(0/O など)には注意が必要 |
よくあるトラブルと対処法
OCR でコードを読み取った後は、必ず実際に実行して検証してください。特に以下の文字の混同に注意しましょう。0 と O、1 と l(小文字のL)と I(大文字のi)、5 と S、そして rn が m と認識されるケースです。また、Fira Code や Cascadia Code などのプログラミング用フォントで使われる合字(リガチャ)は、→ が > や - に、=> が = に誤認識される原因になります。
動画の解像度も認識精度に大きく影響します。1080p のソースであれば問題ありませんが、720p 以下の小さなフォントでは誤認識が増えます。可能であれば、動画の画質設定を最高に変更してから一時停止してください。