【ITニュース解説】Transcribe TikTok and Instagram videos to text with Python (Whisper, no API key)
2026年10月01日に「Dev.to」が公開したITニュース「Transcribe TikTok and Instagram videos to text with Python (Whisper, no API key)」について初心者にもわかりやすく解説しています。
ITニュース概要
PythonとWhisperを使ったツールで、TikTokやInstagram動画の音声をテキスト化できる。動画ダウンロードから音声抽出、文字起こしまでをAPI経由で自動実行。特定アカウントの動画分析や字幕生成も容易だ。
ITニュース解説
近年、TikTokやInstagramのような短尺動画プラットフォームが急速に普及し、私たちの情報収集やコミュニケーションにおいて不可欠な存在となっている。これらの動画には、最新のトレンド、消費者の声、マーケティング戦略など、多くの価値ある情報が詰まっているが、その内容は「音声」として動画の中に閉じ込められているのが現状だ。動画を見るだけでは情報を効率的に把握しづらく、テキストとして検索したり分析したりすることは難しい。TikTokやInstagram自体は動画の文字起こし機能を提供しておらず、多くの動画には字幕も付いていないため、動画内の言葉をデータとして活用するには手間がかかる。
通常、このような動画からテキストを抽出するには、動画をダウンロードし、音声だけを取り出し、その音声を音声認識(Speech-to-Text)モデルに入力するという、いくつかのステップを踏む必要があった。しかし、このニュース記事では、システムエンジニアを目指す初心者でも比較的簡単に、これらのステップを自動化する方法が紹介されている。Pythonというプログラミング言語と「Apify」というプラットフォーム上のツールを組み合わせることで、動画の文字起こしをAPIコール一つで実行できる画期的なアプローチだ。
このアプローチの中心にあるのは、Apifyというサービス上で提供される「Video to Text Transcriber」というツールだ。Apifyは、ウェブからデータを収集したり、特定の処理を自動化したりするためのプラットフォームであり、ここでいう「ツール」は「Actor(アクター)」と呼ばれる自動化プログラムの一種だ。このツールは、オープンソースの高度な音声認識モデルである「Whisper」を利用している。WhisperはGoogleやAmazonのような大企業が提供するAPIキーを別途取得する必要がなく、手軽に利用できるのが大きなメリットだ。
このシステムを利用するための準備は非常にシンプルだ。まず、Pythonのパッケージ管理ツールであるpipを使って、Apifyのクライアントライブラリをインストールする。これはpip install apify-clientというコマンドで行う。次に、Apifyから発行されるAPIトークン(認証情報)を、パソコンの環境変数に設定する。これはシステムがApifyサービスを利用する際の本人確認のようなもので、export APIFY_TOKEN=your_token(your_tokenの部分は実際のトークンに置き換える)という形で設定する。
準備が整えば、PythonコードからApifyのツールを呼び出して、動画の文字起こしを始めることができる。例えば、特定のTikTokやInstagramのリール動画のURLを指定して文字起こしを行う場合は、以下のような流れになる。まず、先ほどインストールしたApifyクライアントライブラリをPythonコードにインポートし、環境変数から取得したAPIトークンを使ってApifyクライアントを初期化する。次に、client.actor("fguiraud/video-to-text-transcriber").call()という形で、Video to Text Transcriberツールを呼び出す。この際、run_inputという引数に、文字起こししたい動画のURLをリスト形式で渡す。また、outputs=["text"]と指定することで、結果としてテキスト形式の文字起こしデータが欲しいことをツールに伝える。
ツールが動画の処理を完了すると、その結果をApifyのデータセットから取得できる。データセットは、処理されたデータが一時的に保存される場所のようなものだ。client.dataset(run.default_dataset_id).iterate_items()を使うと、文字起こしされた各動画の情報をループで順に取り出すことができる。取得できる情報には、動画のプラットフォーム、投稿者、再生回数、そしてもちろん文字起こしされたテキストが含まれる。もし再生回数が公開されていない場合は「views not public」と表示されるが、いいねやコメントといった他の情報が代わりに提供されることもある。このようにして、動画の内容をテキストとして手元に取得し、さらに付随する情報も活用できる。
さらにこのシステムは、単一の動画だけでなく、特定のTikTokアカウントの動画をまとめて文字起こしし、分析する機能も提供する。手作業で個々の動画リンクを集める代わりに、profilesという引数にアカウント名(例: @nasa)を指定するだけで、そのアカウントの最新動画をまとめて処理できる。maxVideosPerProfileで処理する動画の最大数を指定したり、onlyNewVideos: Trueと設定することで、以前に処理した動画をスキップし、新しい動画だけを対象とすることも可能だ。これは、毎週のように特定のクリエイターや競合他社の動向を追跡したい場合に非常に便利で、費用を抑えつつ効率的に情報を収集できる。
文字起こしされたデータは、Pythonコード内でさらに加工して活用できる。例えば、各動画の最初の数文(「フック」と呼ばれる、視聴者の注意を引く部分)を抽出し、その動画の再生回数やいいね数と一緒にCSVファイルとして保存できる。CSVファイルは表形式のデータで、Excelなどの表計算ソフトで開いて簡単に分析できるため、マーケティング戦略の立案やトレンド分析に役立つだろう。記事の例では、NASAのTikTokアカウントの動画を再生回数順にソートし、日付、再生回数、いいね数、そしてフック部分を一覧表示している。これにより、どの動画が多くの視聴者の関心を引き、どんなメッセージが効果的だったのかを一目で把握できる。音楽のみの動画など、音声がない場合は「no speech」として課金対象外となるため、無駄な費用が発生しないようになっているのも良心的な設計だ。
文字起こし以外の出力形式も選択可能だ。例えば、outputs=["srt", "vtt"]と指定すれば、字幕ファイルとして広く使われているSRT形式やVTT形式で出力できる。これらのファイルは、読みやすいように1行の文字数(例: 42文字、2行)が調整されており、自分で作成した動画に字幕として再アップロードすることも可能だ。また、日本語以外の動画を文字起こししたい場合は、language="es"(スペイン語の場合)のように言語コードを指定することで、特定の言語に最適化された認識を行うことができる。言語を指定しない場合は、ツールが自動的に音声を分析して言語を検出する。もし音声の品質が悪かったり、強いアクセントがあったりして認識精度が気になる場合は、model="small"という設定を選ぶことで、より高精度なモデル(ただし費用は少し上がる)を利用することも可能だ。
このサービスにかかる費用は、1分間の動画処理につき0.006ドルと非常に手頃だ。一般的な15秒から60秒程度のTikTok動画であれば、1本あたり0.006ドルで文字起こしができる計算になる。また、音楽のみの動画や、プライベート設定でダウンロードできない動画に対しては料金が発生しないため、無駄な出費を心配する必要はない。Apifyには無料プランも用意されており、毎月一定量のクレジットが付与されるため、まずは無料で試してみることも可能だ。Instagramのプロファイルを直接リスト化するにはログインが必要な場合があるため、その場合は個々のリール動画のURLを渡すことが推奨されている。
このように、PythonとApifyのツールを組み合わせることで、これまで手作業では困難だったり、専門的な知識が必要だったりした動画の文字起こしが、システムエンジニアを目指す初心者でも比較的容易に実現できる。動画コンテンツからテキストデータを抽出し、それを分析・活用するスキルは、今後ますます重要になるだろう。この技術を習得することは、データ分析、コンテンツ管理、あるいは自動化ツール開発といった幅広い分野で、あなたの可能性を広げる強力な武器となるはずだ。