6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ページ読み込みプロセスの動画化ツールを公開

Posted at

loadshow

URLを指定すると、そのページの読み込みプロセスをこんな感じの動画にするNode.js製のCLIツール loadshow (ロードショー)をオープンソースとして公開しました。

ページ読み込み動画

動画を並べて、読み込みスピードの比較もできます。

比較動画

簡単な使い方

GitHubプロジェクトはこちら。Apache 2.0ライセンスです。

Node.js(>=20)、Chrome、ffmpegがインストールされていれば、

npm i -g loadshow
loadshow record https://apple.com/ ./apple.com.mp4

でお試しになれます。

NPMはこちら。

なぜ開発したか?

弊社では主にフロントエンドのスピード改善をお手伝いしています。

改善結果はLighthouseで計測した指標をエビデンスにしますが、専門家以外の人は数値を示されてもなかなかピンときません。

そこでこのような動画でも違いを示し、わかりやすいと好評いただいています。

社内ツールとして数年前から作り込んできたのですが、だいぶ中身がごちゃごちゃしてきたのでリメイクがてらオープンソース化しました。

動画のカスタマイズもできるようになっています。ぜひREADMEを読んで試してみてください。

サイトスピードの改善機運に貢献できたら望外の喜びです。

どんな作り?

Chrome DevTools Protocolにはそのものずばり画面の録画機能があります。

  1. puppeteerに縦長のビューポートを設定し、
  2. Page.startScreencastでページの読み込み過程を録画して、
  3. sharpでフレームを構成し、
  4. 最後にffmpegでmp4動画に合成します

ウィンドウとビューポートを縦長に設定する都合で、全画面背景など画面高さに合わせたCSSがあるページは苦手です。

動画上部の情報バナー(タイトルやURLなど)は、node-html-to-imageによって生成しています。

社内ツール時代はLinuxで動作すればよかったんですが、MacOSやWindowsなど他のプラットフォームではpuppeteerの挙動に微妙な違いがあって、対応に苦労しました。

その他いろいろ発展途上なので、ぜひ改善にご協力ください!

6
7
0

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
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?