Communitygithub.com

ClayKW/skill

TikTokのリンクから映画/シリーズのタイトルを特定。動画をダウンロードして10フレームに分割し、探偵役と懐疑役の2つのAIがWeb検索で検証しながら議論。全ファイルはrclone経由でGoogle Driveに保存。

skill とは?

このスキルは、TikTokの短い動画クリップから、その元となった映画やテレビシリーズを特定するための強力なツールです。ユーザーがTikTokのURLを提供すると、まず動画をダウンロードし、開始10%と終了10%を除いた範囲から指定された枚数(デフォルト10枚)のフレームを抽出します。その後、2つのAIエージェントが異なる役割で対話します。探偵役(AI 1)は各フレームを直接分析し、衣装、場所、俳優、時代、映像スタイルなどの手がかりから候補を提案します。懐疑役(AI 2)はWeb検索ツールを使って各候補を検証し、矛盾点を指摘したり、新しい候補を提案したりします。この対話は複数ラウンド(デフォルト3ラウンド)繰り返され、確信度の高い結論を導き出します。特にシリーズ作品の場合、エピソード番号やタイトル、正確な再生時間(分:秒)まで特定します。すべての中間ファイル(動画、フレーム、議論のトランスクリプト、最終結果)はrcloneを使用してGoogle Driveに自動アップロードされ、ローカルファイルは後でクリーンアップされるため、ディスク容量を節約できます。このスキルは、Claude CodeやCursor、CodexなどのAIエージェントプラットフォームで動作し、開発者やメディア分析の専門家がTikTokの断片的な映像から作品を特定する際に非常に有用です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ClayKW/skill/tree/HEAD/movie-finder

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

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

ドキュメント

Movie Finder

TikTok 動画からフレーム分析と2つのAIによる議論を通じて映画/シリーズを特定するツール。すべての作業ファイル(動画、フレーム、トランスクリプト、結果)はrclone経由でGoogle Driveに保存 — ローカルには一時的に保存され、後でクリーンアップされます。

ユーザーが設定できるパラメータ(リクエストから質問/推定)

パラメータデフォルト説明
フレーム数10grab_frames.sh の第2引数
議論モードper-gambarフレームごとに3ラウンドの議論(負荷大、10フレームで約30回の議論)。batch モード = すべてのフレームをまとめて3ラウンド議論(効率的、ほとんどのケースで十分)
ラウンド数3AI1↔AI2 の応答ペア数
rclone remotegdrive:Linux-Server/movie-finder環境変数 MF_REMOTE でオーバーライド可能
ローカル保持0第3引数、1 = 動画をローカルにも保存

パイプライン

1. ダウンロード+フレーム分割

bash scripts/grab_frames.sh "<tiktok_url>" [num_frames] [keep_local]
  • 出力JSONの内容: gdrive(保存先フォルダ)、frames_local(フレームjpgのパス)、duration_sec、video_size、scratch_dir。
  • スクリプトの自動処理: ダウンロード → フレーム抽出(最初と最後の10%はスキップ)→ gdrive にアップロード → ローカル動画を削除。フレームはセッション中ローカルに残ります(あなたが表示できるように)。
  • ダウンロード失敗(地域制限/年齢制限): ユーザーに伝え、代替リンクを提案してください。

2. すべてのフレームを確認

frames_local から各jpgファイルを読み取りツール(画像)で読み込みます。以下の手がかりを自分でメモ: 衣装、場所、俳優、時代/フィルムグレイン、画面上のテキスト、透かし、撮影スタイル、クレジットタイトル。

3. 2つのAIによる議論(サブエージェント、エージェント: general 経由)

2つの役割を交互に実行(WhatsApp チャットのように):

  • 🕵️ AI 1 探偵 — プロンプト: フレームの視覚分析(具体的な手がかりを述べて)、1〜3の候補 タイトル + 年 + 理由 を推測、確信度を示す。AI 1 はフレームファイルを直接読み取る必要があります(パスを渡してください)。
  • 🔍 AI 2 懐疑論者 — プロンプト: Web検索ツールを使用して各候補を検証("<タイトル> <年> 映画" + ユニークなシーンの詳細を検索)、リンクの証拠で反論/確認、新しい候補を提案してもよい。

ルール:

  • 1ラウンド = AI 1 分析 → AI 2 検証。デフォルト3ラウンド。
  • 各AIが使用したモデルをトランスクリプトと回答に記録・表示(例 ヘッダー: 🕵️ AI 1 — 探偵 [model: custom/auto])。モデル名はサブエージェントのメタデータ/設定から確認;両方の役割が同じモデルを使用している場合は、そのまま記載。diskusi.md と最終回答にも含めます。
  • per-gambar(フレームごと)モード: 各フレームで繰り返し、常に前のラウンドのトランスクリプトと既存の候補コンテキストを含めて議論をつなげます。重複除去: 異なるフレームで同じ候補が繰り返される場合、強化ラウンドは1回で十分、完全な3ラウンドは不要。
  • batch モード: すべてのフレーム(パスのリスト)を1回の3ラウンド議論で送信。
  • サブエージェントの model パラメータは設定しない(デフォルトを使用)。
  • 推奨制限: AI 1 は分析のみ(ツール不要)、AI 2 はWeb検索に集中。

4. 結論

以下の項目をまとめる: タイトル + 年 + 確信度(高/中/低) + AI 2 からの参照リンク + コンセンサスがない場合のメモ。

シリーズ/TVシリーズの場合、AI 2(最終ラウンド)は以下の情報を必ず補完する:

  • シーズンとエピソード: クリップのソースとして最も可能性の高いエピソード(手がかり: 特定されたシーン/キャラクター/衣装 + Web検索 "エピソードガイド"、各エピソードのあらすじ、TMDBの各エピソードクレジット)。
  • エピソードタイトル(存在する場合)。
  • エピソードの正確な再生時間(分:秒)(形式 47:23)、IMDb(技術仕様/エピソードページ)またはTMDBから — 大まかな丸めではありません。
  • 特定のエピソードが確定できない場合、「エピソードは特定できません」と明記し、エピソードの再生時間のみを記載。
  • ボーナス(ベストエフォート、「推定」と明記): エピソードガイド/あらすじで特定されたシーンに基づき、エピソード内のクリップ位置のタイムスタンプを推定。

映画の場合: IMDb技術仕様/TMDBから 時間:分:秒 形式(例 1:52:47)で正確な再生時間を記載。「約120分」のような表記は避ける。

5. 結果をgdriveに保存(新しいローカルファイルは作らない)

  • 完全なトランスクリプト → rclone rcat "<DEST>/diskusi.md"(チャット形式: 絵文字 🕵️/🔍、役割名、応答内容)。
  • 結論 → rclone rcat "<DEST>/hasil.md"。

シリーズ用 hasil.md テンプレート(エピソード詳細は必須):

# 識別結果 — Movie Finder
- タイトル / タイプ / 年 / プラットフォーム / 作成者 / 確信度

## エピソード詳細
- シーズンとエピソード : S01E05(確定できる場合、そうでなければ「エピソードは特定できません」)
- エピソードタイトル   : "Beautiful Billionaires"
- エピソード再生時間   : 47:23(分:秒、IMDb/TMDBから)
- 総エピソード数       : 11(S1)
- 推定クリップ位置     : エピソード内 ±12:40(ベストエフォート、推定)

## 適合理由
...主要な証拠...

## 参照
...リンク...

映画の場合: 「エピソード詳細」セクションを「映画再生時間: 1:52:47(時間:分:秒)」に置き換えます。

6. ローカルクリーンアップ

rm -rf <scratch_dir>

7. ユーザーへの回答

回答の順序: シリーズの場合はエピソード詳細と再生時間(シーズン、エピソード番号、エピソードタイトル、再生時間)または映画の再生時間 + 簡潔な議論のポイント要約 + 参照リンク + gdriveフォルダの場所 — その後 最終推測(🎬 結果: タイトル/年)を一番下 に配置して締めくくります。完全なトランスクリプトは要求がない限り表示しないでください。

トランスクリプト例

🕵️ AI 1 — 探偵 [model: custom/auto]: フレーム3は19世紀のイギリス軍風の衣装が見られます... 候補: 「1917」(2019)、「The Northman」(2022)
🔍 AI 2 — 懐疑論者 [model: custom/auto]: 確認します... [websearch] 「The Northman」はバイキング時代で、一致しません。「1917」は一致: 塹壕戦、ワンカット。確認済み: [リンク]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル