Communitygithub.com

映画スチルファインダー

「喧嘩の後、二人が黙って座っているスチルが欲しい」といった要求を、実際の出典付き画像ファイルに変換します。どのAIエージェント、どのOSでも、認証情報は不要です。

映画スチルファインダー とは?

このスキルは、自然言語のクエリ(例えば「喧嘩の後、二人が黙って座っているスチル」)を、実際の出典付きの映画スチル画像に変換するための完全なパイプラインを提供します。認証情報やAPIキーは一切不要で、どのAIエージェント(Claude Code、Cursor、Codexなど)やOSでも動作します。仕組みとしては、まずクエリの内容をファクトチェックし、適切なソース(映画スクリーンショットサイトやFilmGrabなど)を選択。候補画像を一括ダウンロードし、番号付きコンタクトシートを生成。その後、画像認識可能なモデル(または人間)が視覚的にフレームを選択。選択された画像の高解像度版を取得し、必要に応じて字幕の切り抜きや合成を行い、最終的に出典情報(ソースURL、映画タイトル/年)と共に納品します。provinece(来歴)情報は自動的にmanifest.jsonに記録され、常に検証可能な状態が保たれます。

対応✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Fitzfeichi/movie-still-finder/tree/master

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

映画スチルファインダー は何をしますか?

「喧嘩の後、二人が黙って座っているスチルが欲しい」という要求を、実際の出典付き画像ファイルに変換します。どのAIエージェント、どのOSでも、認証情報は不要です。

1. 最初に読んでください:実際に何が可能か

自然言語の文章を受け取って、正確な映画のフレーム(特に字幕が焼き付いたもの)を返す、無料の公開APIは存在しません。この「銀の弾丸」を追い求めるのは時間の無駄です。実際に機能するのはパイプラインであり、エージェントが各工程を調整し、画像認識可能なモデルがフレームを選択します。

要求 → ファクトチェック → ソース選択 → 候補を一括ダウンロード
        → 番号付きコンタクトシート → 視覚的なフレーム選択 → 高解像度オリジナル
        → 字幕の切り抜き / 合成 → 視覚的な再確認
        → 納品 + 出典マニフェスト

譲れない2つの結果:

  • 視覚的なステップは省略できません。 ファイル名やテキストだけでフレームを推測しても失敗します。コンタクトシートを画像認識可能なモデル(または人間)に見せる必要があります。
  • 最初にファクトチェックを行ってください。 映画に関する「よく知られた事実」は、しばしば間違っています(references/fact-check.md を参照)。検索する前に、セリフ/シーン/エピソードを検証してください。

2. クイックスタート(最小限のプロファイル、デフォルト)

pip install -r requirements.txt
python scripts/still.py probe                       # 現在どのソースにアクセス可能か確認
python scripts/still.py grab --out ./work \
  --page "https://movie-screencaps.com/avatar-2009/page/114" \
  --image-referer "https://movie-screencaps.com/" \
  --limit 40
# -> ./work/candidates/*.jpg, ./work/contact_1.jpg, ./work/manifest.json
# contact_1.jpg を画像認識モデルに見せ、該当する番号を確認してから:
python scripts/still.py sheet ./work/candidates     # 番号付きシートを再生成
python scripts/still.py crop ./work/candidates/p1_02.jpg --bottom 100 -o ./work/clean.jpg
python scripts/still.py deliver ./work --picks examples/sample-picks.json \
  --profile profiles/minimal.json --out ./delivery

常に最初に probe を実行してください:ソースの可用性は変動します。完全にオフラインで実行する場合は、examples/quickstart.md のセクションDを参照してください。--image-referer は通常、記事のURLではなくサイトのルートです。

セリフの場合は、quote で映画名とミリ秒単位のタイムスタンプが得られます:

python scripts/still.py quote "I see you" --title Avatar

完全なチュートリアル:examples/quickstart.md。コマンドリファレンス:scripts/still.py --help。

3. ネットワークに触れる前にルートを決定する

要求第一選択フォールバック
シーン / 雰囲気("喧嘩の後の沈黙"、"背を向けた二人")キャプション付きスチルがある編集記事、またはFilmGrabのキュレーションフレーム(grab)フレーム単位のギャラリー + 視覚的な選択
引用されたセリフ / 「XがYと言うフレーム」quote → タイムスタンプ → フレームギャラリー → subtitle(合成と明記)編集記事からのネイティブ字幕付きスクリーンショット
ワイドでクリーン、字幕なしのカバーアートが必要FilmGrabのキュレーションフレームビューイングスクリーンショットの下部95-100pxをcropで切り抜き
ユーザーがローカル動画ファイルを持っているオプションのローカル意味検索、references/optional-adapters.md を参照—
スチルではなくミーム / 梗図オプションの付録、references/meme-optional.md を参照—

probe を最初に実行してください。無料で、ログイン不要で、現在の環境でどのソースが403/到達不能かを教えてくれるので、死んだホストへの再試行を防げます。

4. すべてのエージェントに適用されるルール

  1. 認証情報は不要。 APIキーを要求したり、ユーザーに代わってログインしたり、ペイウォールやアンチボット対策を回避しないでください。403が返ってきたら「ソースを切り替え」、実行ログに記録します。
  2. 実際に返されたURLのみをダウンロードしてください。 画像URLを決してでっち上げないでください。ページにアクセスできても、その画像CDNにアクセスできるとは限りません:ギャラリー全体を信頼する前に、1つの画像を検証してください。Refererを1回修正しても画像が403を返す場合は、ソースを切り替えてください — ヘッダーを変えて繰り返さないでください。
  3. 来歴を記録してください。 納品されるすべての画像には、ソースページ、ダイレクト画像URL、映画タイトル/年、および切り抜きや合成が行われた字幕の有無が必要です。grab はこれを自動的に manifest.json に書き込みます。
  4. 合成した字幕を明記してください。 元のフレームになかった字幕を追加した場合は、キャプションでその旨を明記してください。ネイティブフレームとして提示しないでください。
  5. 解像度を確認し、推測しないでください(デフォルトでは幅 >= 1000 px)。納品前にビューアで最終ファイルを開いて確認してください。
  6. プロファイルを尊重してください。 上記以外の動作(人間による選択、デュアルフォルダ納品、必須ファクトチェック、カバークロッププレビューなど)は、profiles/*.json によって制御されます。追加のルールを黙って有効にしないでください。

5. プロファイル(オプションの動作)

デフォルトの profiles/minimal.json は、シンプルで汎用的なパイプラインです:候補を見つけ、1つを選択し、来歴とともに納品します。これ以外はすべてオプトインです。

python scripts/still.py rules --profile profiles/editorial-wechat.json
python scripts/still.py deliver ./work --picks picks.json \
  --profile profiles/editorial-wechat.json --out ./delivery

editorial-wechat.json は、人間の編集者のワークフローをバンドルしています:番号付きプレビューと人間による選択(自動ファイナライズは不可)、候補を一切削除しないデュアルフォルダ納品、必須ファクトチェック、必須字幕/ソース注釈、そして2.35:1のカバークロッププレビュー。完全なスキーマについては profiles/README.md を参照してください。

6. リファレンスインデックス(段階的な開示)

現在のステップに必要なものだけを読んでください。

ファイル読むタイミング
references/workflow.mdエンドツーエンドのSOPと受け入れチェックリスト全体が必要な場合
references/sources.mdソースを選択するとき、またはソースが機能しなくなったとき
references/pitfalls.md何かが失敗したとき;既知の死亡ホストと正確な障害モードが含まれています
references/image-ops.mdコンタクトシート、切り抜き、字幕合成、フォントについて
references/fact-check.mdセリフを引用するリクエストや特定のシーンを説明するリクエストの場合
references/delivery.md来歴スキーマ、デュアルフォルダレイアウト、著作権の境界について
references/meme-optional.mdユーザーがスチルではなくミームを要求した場合
references/optional-adapters.mdローカルビデオライブラリ、またはその他のログイン/CLIベースのツールについて

7. 受け入れチェックリスト

  • 検索前にセリフ/シーンがファクトチェックされている
  • 番号付きコンタクトシートが画像認識モデルまたは人間によって確認されている
  • 最終画像が正しく開き、クエリだけでなく要求に一致している
  • ソースページ + ダイレクトURL + 映画/年が manifest.json に記録されている
  • 切り抜かれた / 合成された字幕が明示的にラベル付けされている
  • 幅 >= 1000 px(またはその逸脱が明記されている)
  • 死んだホストとその回避策が、黙って再試行されるのではなく記録されている
  • 候補が削除されていない;中間ファイルは保持されている

8. スコープの制限

このスキルは画像を見つけて準備します。公開、 ユーザーの原稿の編集、ユーザーに代わって最終カバーを決定する(プロファイルがすでに人間が選択したと明記している場合を除く)、または映画スチルを再配布する権利を付与することはしません。著作権の境界については references/delivery.md を参照してください。

関連スキル