tmdb について
tmdbは、TMDbの映画・テレビ番組メタデータをコマンドラインで読み取り専用で調べるスキルです。検索やID照合、詳細取得、トレンドやおすすめの絞り込みに対応します。
主な機能
- 01映画・テレビ番組の検索
- 02外部IDによる照合
- 03詳細とクレジットの取得
- 04条件による作品の検索
- 05トレンド、ジャンル、認証区分の閲覧
活用シーン
- 01IMDb IDから映画を特定
- 02作品のクレジットや動画を取得
- 03評価と日付でホラー作品を絞り込む
- 04トレンド作品や認証区分を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill tmdbインストール後、Claude Code で/tmdbを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdevals/evals.jsonreferences/auth-pagination-and-errors.mdfind-and-details.mdsearch-discover-trending.mdscripts/test_tmdb.pytmdb詳細
ターミナルからTMDbのメタデータを取得
セットアップ
TMDb API settingsで認証情報を作成します。API Read Access Tokenの使用をおすすめします。
export TMDB_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
# Or use the v3 key: export TMDB_API_KEY="YOUR_API_KEY"
CLIはAuthorization: Bearer $TMDB_ACCESS_TOKENまたは?api_key=$TMDB_API_KEYを送信します。どちらの形式でもv3のアクセスレベルは同じです。設定するのは一方だけにしてください。--helpと--dry-runには認証情報は必要ありません。
基本コマンド
検索と識別
tmdb movie search --term "dune" --limit 5 --json
tmdb tv search --term "severance" --limit 5
tmdb find tt0111161 --source imdb_id --json
--sourceには、公式の外部ソース値のいずれかを指定します:imdb_id、facebook_id、instagram_id、tvdb_id、tiktok_id、twitter_id、wikidata_id、youtube_id。Freebaseの検索には対応していません。廃止されたfreebase_midとfreebase_idの値は拒否されます。レスポンスはmovie_results、tv_results、person_results、tv_season_results、tv_episode_resultsに分かれます。
詳細情報と補足データ
tmdb movie detail 550 --append credits,videos --json
tmdb movie detail 550 --append 'credits,watch/providers,external_ids' --json
複合レスポンスでは、リクエストした名前がトップレベルのキーとして使用されます。生のURLを構築する場合は、watch/providers内のスラッシュをエンコードしてください。
検索と閲覧
tmdb movie discover --genre horror --rating 7 --limit 10
tmdb movie discover --genre horror --certification R --from 2024-01-01 --to 2024-12-31
tmdb trending --type all --window week --limit 20 --json
tmdb genre list --type movie --json
tmdb genre list --type tv --json
tmdb certification --json
生のdiscoverリクエストでは、投票数が非常に少ない作品が上位に表示されないよう、vote_average.descとともにvote_count.gteを使用してください。現在のTMDbドキュメントでは、カンマ区切りのジャンルIDはAND、パイプ区切りのIDはORとして扱われます。
パイプラインのレシピ
IMDb IDから映画情報を補完
- IMDb識別子を解決します。
curl -s -H "Authorization: Bearer $TMDB_ACCESS_TOKEN" \
'https://api.themoviedb.org/3/find/tt0111161?external_source=imdb_id' > /tmp/find.json
id=$(jq -r '.movie_results[0].id' /tmp/find.json)
- 詳細情報と複合リソースを取得します。
curl -s -H "Authorization: Bearer $TMDB_ACCESS_TOKEN" \
"https://api.themoviedb.org/3/movie/$id?append_to_response=credits,videos,watch%2Fproviders" \
| jq '{title, runtime, director: [.credits.crew[] | select(.job == "Director") | .name], cast: [.credits.cast[0:5][].name], providers: .["watch/providers"].results.US}'
検索してから詳細を取得
tmdb movie search --term "dune" --limit 1 --json > /tmp/search.json
id=$(jq -r '.results[0].id' /tmp/search.json)
tmdb movie detail "$id" --append recommendations,similar --json
信頼性の高い検索結果に絞り込む
APIを直接使う場合は、日付範囲、パイプ区切りのORまたはカンマ区切りのANDによるジャンル指定、vote_count.gte、sort_by=vote_average.descを組み合わせます。その後、次のワークフローの手順に必要なフィールドだけをjqで抽出します。
JSONとjq
--jsonはサブコマンドの前後どちらに置いてもかまいません。JSON形式の検索結果にはresultsと、通常はpage、total_pages、total_resultsのページネーションフィールドが含まれます。サービスで指定できるページ番号は500までです。安定した表形式で受け渡すには、jq -r '.results[] | [.id, (.title // .name)] | @tsv'を使用します。
既知の注意点
- 認証情報の使い分け:
api_keyとBearerは代替の認証方式であり、混在させるものではありません。認証情報が拒否されると、通常はHTTP 401、status_code: 7、Invalid API key: You must be granted a valid key.が返されます。権限エラーのコードは3です。コード33は無効なリクエストトークンを示し、このAPIキーのメッセージとは異なります。 - ページネーションの上限: ページ番号は1から始まり、最大500です。上限を超えるリクエストは失敗します。検索とdiscoverでアクセスできる結果は、合計数がそれ以上に見える場合でも、実質10,000件までです。レートの目安は毎秒約40リクエストです。429レスポンスが返された場合は
Retry-Afterに従ってください。 - 複合リクエストの構文: appendの値はカンマ区切りで、呼び出しは最大20件です。
watch/providersにはスラッシュが含まれるため、curlではURLエンコードし、jqでは.\"watch/providers\"の記法を使用してください。 - 外部IDのレスポンス形式:
/find/は汎用のidを返しません。映画またはTVの詳細を選ぶ前に、該当するネストされた配列を確認してください。有効なのは、ドキュメントに記載された8つのexternal_source値だけです。廃止されたFreebaseのソース(freebase_mid、freebase_id)は拒否されます。 - プロバイダーのフィルター:
with_watch_providersにはwatch_regionが必要です。プロバイダーデータにはJustWatchの帰属表示要件があります。 - ローカライズと画像: 再現性が重要な場合は、
language=en-USと市場のregionを指定してください。画像URLは、/3/configurationのセキュアなベースURL、有効なサイズ、返されたパスから構築します。
使用する場面
映画やTVのメタデータ、出演者・スタッフ、公開情報、レーティング、画像、おすすめ作品、プロバイダーのメタデータを読み取り専用で検索する場合に、このスキルを使用します。
使用しない場面
トレントや海賊版の検索、ストリームの再生やダウンロード、個人の視聴済み・未視聴状態の管理には使用しないでください。視聴履歴のワークフローにはtraktを、配信状況の確認には再生・カタログ連携を使用してください。
リファレンスファイル
| ファイル | 用途 |
|---|---|
| references/auth-pagination-and-errors.md | 認証情報、ページネーション、レート制限、エラー、言語、地域、画像 |
| references/find-and-details.md | IMDb/TVDB の検索、レスポンスのマッピング、詳細フィールド、複合リクエスト |
| references/search-discover-trending.md | 検索、ディスカバーフィルター、トレンド、ジャンル、レーティング、公開リスト |
利用可能なスクリプトと前提条件
scripts/tmdbは、標準ライブラリとrequestsのみを使用する実行可能な Python CLI で、--json、--dry-run、--quiet、--verboseを維持します。scripts/test_tmdb.pyはオフラインの unittest/pytest スイートで、すべての HTTP 動作をモックします。- Python 3.8 以降と
requestsが必要です。このスキルによってサービスが起動されることはありません。