stitched-full-page-capture について
安定したビューポート画像から全ページ画像を作るワークフローのスキルです。長いページや遅延読み込みページの記録に向け、画像を結合し、ページや動画の証拠と照合します。
主な機能
- 01一度スクロールして読み込み
- 02安定したビューポートを撮影
- 03全ページ画像へ結合
- 04セクション画像を再生成
- 05動きの証拠と照合
活用シーン
- 01遅延メディアのある Framer ページの撮影
- 02空白や不完全な全ページ画像の修復
- 03記事用のページ画像素材の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mengto/ skills --skill stitched-full-page-captureインストール後、Claude Code で/stitched-full-page-captureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamldemo/expected-output.mdindex.htmlinput.mdPROMPT.mdscripts/stitch_full_page_capture.mjs詳細
スクロール画像をつないだ全ページキャプチャ
概要
ブラウザーの一度きりの fullPage キャプチャを過信せず、表示が安定したビューポートのスクリーンショットを使います。これは、MP4 は正しく見えても縦長のスクリーンショットがほぼ空白になることがある、Framer のページや遅延読み込み・スクロールアニメーションを使うサイトで特に重要です。
基本的なワークフロー
- マーケットプレイスのサムネイル、カバー画像、リミックスページ、アセット URL ではなく、実際のページ URL を開きます。
- 上から下まで一度スクロールしてページを読み込み、遅延メディアやスクロールに応じて表示されるセクションをマウントします。
- ページの先頭に戻ります。
- ビューポートと同じ幅、または少し重なる幅で下方向にスクロールします。
- スクロールが止まるたびに約 2 秒待ちます。
- 表示が安定したビューポートをキャプチャします。
- キャプチャしたビューポートを縦につなぎ、全ページ画像を作成します。
- ブラウザー標準の
fullPageスクリーンショットではなく、つないだ画像からセクションの切り抜きを作成します。 - つないだ画像を代表的な静止画、MP4、モーションフレームと照合して検証します。
空白・グレー・白の帯がある、視覚的なコンテンツが極端に少ない、遅延読み込みされたセクションが抜けている、コンテンツの列が極端に細い、またはスクロール動画と明らかに一致しない場合は、全ページ画像の候補を却下します。
スクリプト
日々の UI インスピレーション記事では、利用可能な場合、このスキルディレクトリのヘルパースクリプトを使います。
node <skills-root>/stitched-full-page-capture/scripts/stitch_full_page_capture.mjs \
--manifest articles/YYYY-MM-DD-ui-inspiration-capture/manifest.json
このスクリプトは次の処理を行います。
items[].pageUrl、fullPageImage、sectionImagesを読み取ります。- Playwright Chromium で各ライブページを開きます。
- 一度スクロールして遅延コンテンツを読み込みます。
- 表示が安定したビューポートのスライスをキャプチャします。
- スライスをつないで
fullPageImageを作成します。 - 既存のセクションの切り抜きを、つないだ画像から再生成します。
manifest.jsonを更新し、fullPageCaptureMethod: "stitchedViewportScreenshots"、ビューポート、ステップ、セグメント数、修正後の切り抜き座標を記録します。
便利なオプション:
--item 4 # repair only item 4, 1-based
--viewport 1440x1100 # default
--step 950 # default; use less than viewport height for overlap
--wait 2000 # ms to wait after each scroll stop
--quality 3 # ffmpeg JPEG quality, lower is better
検証
キャプチャまたは修復の後に、次の項目を確認します。
- 修正前に明らかに問題があったページを少なくとも 1 つ確認します。
sips -g pixelWidth -g pixelHeight full-page/*.jpgが、想定どおりの横幅・縦幅を報告することを確認します。- 全ページ画像がほぼ空白ではなく、ページ下部のコンテンツを含んでいることを確認します。
- セクションの切り抜き座標が連続していて、全ページ画像の高さで終わっていることを確認します。
- 次のように、プロジェクトで通常行うチェックを実行します。
git diff --check -- articles/YYYY-MM-DD-ui-inspiration-capture/content.md articles/YYYY-MM-DD-ui-inspiration-capture/manifest.json
node scripts/check-ui-inspiration-duplicates.mjs articles/YYYY-MM-DD-ui-inspiration-capture/manifest.json
for f in articles/YYYY-MM-DD-ui-inspiration-capture/videos/*.mp4; do ffprobe -v error "$f" >/dev/null; done
備考
- スクロール動画は、実際のスクロール中にページを描画できることを示す証拠ですが、全ページの静止画の証拠の代わりにはなりません。
- ブラウザー標準の
fullPageスクリーンショットも比較候補として保存できますが、つないだキャプチャと見た目が一致しない限り、基準となる画像として使わないでください。 - 日々の UI 記事では、マニフェストを更新し、修復した記事のアセットとメタデータのみをコミットします。
コメント
Markdown 対応