3
0

NETFLIX の字幕をスクレイピングする

Last updated at Posted at 2022-09-07

はじめに

この記事では、NETFLIX で掲載中の映画から字幕をスクレイピングで取得するツールのご紹介をします。IT やプログラミングがまだ不慣れな人でも使えるように、可能な限り簡単に作りました。なので、高度で高機能なスクレイピングツールを求められている方は対象ではありません。

また、このツールは言語学習を目的として作成しました。
その他の用途で使用することは控えてください。

目次

背景

私は NETFLIX の視聴者で、よく洋画やアニメを鑑賞しています。
NETFLIX を契約する前は、英語の勉強としてハリウッド映画やワーナーブラザーズの映画をレンタル屋から借りてきては、頑張って英語字幕を書き写しては調べ、丸暗記してシャドウイングするという勉強法を行ってきました。

※この勉強法が良いかはわかりません。
※もっと良い方法があればコメントでご教示ください!

NETFLIX を契約してからも同じ方法を続けていたのですが、やはり字幕の書き写しの時間と労力が半端ではなく、この工程を省けたら楽なのになあ、、と日々考えていました。

作ってみるか

プログラミングを多少かじっていたので、NETFLIX の字幕の表示構造をブラウザのデベロッパツールで調べてみたところ、案外シンプルな構造でした。

「あれ、これ抜き取れるんじゃね?」

とふと思い、じゃ作ってみるかと思い立ちました。

成果物

作成したスクレイピングツールは以下の GitHub リンクに掲載しています。

NETFLIX-SUBTITLE-SCRAPER

クローンしてくださるも良し、コピーしてそのまま使用してくださるも良し、ご自由に使用してみてください。

使い方

できるだけ簡単に使えるようにしましたが、やはり多少はプログラミングの知識を必要とします。すみません。

以下はその手順です。

スクレイピングの開始

  1. GitHub 内の「netflix_subtitle_scraper.js」ファイルにアクセスする。
  2. 画面の右側にある「コピー」アイコンをクリックして、コードすべてをクリップボードにコピーする。
  3. NETFLIX で鑑賞したい映画を選択し再生を開始して、一時停止させる。
  4. デベロッパツールを表示させる。
    一時停止中の画面上で右クリックし、「検証」を選択すると表示される。
    Mac: Command + Shift + c
    Windows: Ctrl + Shift + i
  5. デベロッパツール内のタブで、「コンソール」または「Console」を選択する。
  6. コンソール上で先ほどクリップボードにコピーしたコードを貼り付ける。
    ※そのまま全部を貼り付けて問題ありません。
  7. Enter キーを押す。(ここでスクレイピング機能が開始)
  8. 一時停止させていた映画を再生させる。(デベロッパツールは表示させたままを推奨します)

スクレイピングした字幕を出力する

  1. 再生していた映画を一時停止させる。(映画一覧には戻らないでください)
  2. 以下のコードをコンソール上で実行し、スクレイピング機能を停止させる。(任意)
    mo.disconnect();
  3. 以下のコードをコンソール上で実行し、抜き取った字幕をコンソール上で出力する。
    subtitle;
  4. 以下のコードをコンソール上で実行し、出力した字幕をクリップボードにコピーする。
    copy($_);
  5. 後は、テキストファイルや Evernote など、お好きなツールに貼り付けてください!

参考写真

スクレイピングの開始 - 手順2
copy_code_to_clipboard.png

スクレイピングの開始 - 手順6
paste_code_to_console.png

スクレイピングの様子
ongoing_scraping.png

スクレイピングした字幕を出力する - 手順1-4
output_subtitles.png

スクレイピングした字幕を出力する - 手順5
result_of_scraping.png

各種設定(応用編)

スクレイピングツールのコードの中で、初期設定を行える項目があります。
コードを貼り付けて実行する前に、こちらの項目を変更してスクレイピングの機能を一部変更することができます。

各種設定

キー 説明
sentenceSeparate それぞれの字幕を空白行で離すかどうかを設定
true: 空白行で離す(デフォルト)
false: 空白行で離さない
effectsHide "[Raining sound]" などの効果音字幕を省略するかどうかを設定
true: 省略する(デフォルト)
false: 省略しない
playingDebug スクレイピング中に抜き取った字幕をコンソール上で表示するかを設定
true: 表示する(デフォルト)
false: 表示しない
clearConsole スクレイピングツールのコードを実行後にコンソールの表示をクリア(綺麗に)するかを設定
true: クリアする(デフォルト)
false: クリアしない
3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0