YouTube Data Skill
UnifAPI MCP で YouTube の公開データを読む: チャンネル調査向けの youtube/... オペレーション、レスポンス形式、カバレッジの限界。アップロードはしません。
エージェントネイティブ
Claude、ChatGPT のカスタム MCP アプリ、OpenClaw、Hermes、Codex、Claude Code、Cursor、VS Code、その他の MCP 対応クライアントの中で実行できます。専用の GUI フローも、別の LLM API キーも不要です。
ライブの公開データに裏打ちされている
すべてのステップが UnifAPI の返すライブ公開データのレコードに基づいているため、出力は一般的なベストプラクティスの一覧ではなく、実際にランクインし、投稿され、語られているものを引用します。
組み合わせ自由でオープンソース
Skills は互いを参照し合い、MIT 形式の公開リポジトリに置かれています。GitHub で SKILL.md の全文を読むも、フォークするも、agent の中でそのまま実行するも自由です。
これを Codex または Claude Code に貼り付けてください
プロンプトは意図的に編集できるようになっています。ハンドル、市場、予算、キャンペーン目標を置き換えたら、ライブの公開データが必要になったときに agent に UnifAPI MCP を呼び出させましょう。
Using the YouTube Data Skill, research who owns the topic "AI coding tools": search videos and channels, read their subscriber and view counts, and pull related videos for demand. Return a cited brief on the strongest channels. Read-only.
SKILL.md からレンダリングされた、skill の全文
UnifAPI を通じて公開 YouTube データを読み取るための、決定論的な読み取りパス。これは
Data Skill です。それ自体でマーケティングジョブを実行することはありません。具体的な
youtube/... のオペレーション、レスポンス形状、そして実際のカバレッジの限界を明示するので、
あらゆるチャンネルファーストまたはコンテンツファーストのワークフロー(クリエイター精査、競合の反応、
コンテンツ需要)が、毎回サーフェスを再発見する代わりに 1 つの既知のレシピから読み取れます。
読み取り専用 — 手ではなく目。公開 YouTube データをリサーチし、引用付きのレコードを返します。 アップロード、コメント、登録はせず、UnifAPI は YouTube の認証情報を一切保持しません。
ライブの根拠には unifapi スキルを使う
共有の unifapi スキル(OAuth MCP)を通じて一度接続し、続いて以下の
オペレーションを呼び出します。チャンネルは {channel_id} で、動画は
{video_id} でキー付けされます — まずハンドルや URL をチャンネル id に解決します(落とし穴を参照)。
出力がレコードコストを記載できるよう、billing メタデータは保持してください。
レスポンス契約
単一エンティティのエンドポイントは、オブジェクトを data に返します。
{
"request_id": "unif_...",
"data": {},
"billing": { "records_charged": 1, "balance_remaining": 99 }
}
リストエンドポイントは、配列を data に加えて pagination を返します。
{
"request_id": "unif_...",
"data": [],
"pagination": { "has_more": false, "next_cursor": null },
"billing": { "records_charged": 1 }
}
pagination.has_more が true のときは、pagination.next_cursor を次の
リクエストの cursor として渡します。コストを報告する際は常に billing を保持してください。
コアオペレーション
| 必要なもの | オペレーション |
|---|---|
| 動画を検索 | youtube/search (?q=..., オプション sort_by/upload_date/duration/region/language) |
| チャンネル / プレイリストを検索 | youtube/search/channels · youtube/search/playlists (?q=...) |
| トレンド | youtube/trending (オプション type = now/music/gaming/movies) |
| ハッシュタグ動画 | youtube/hashtags/{tag}/videos |
| ハンドル/URL → id を解決 | youtube/resolve/channel-id (?url=...) |
| チャンネルページ | youtube/channels/{channel_id} |
| チャンネル動画 / shorts | youtube/channels/{channel_id}/videos · .../shorts |
| チャンネルプレイリスト | youtube/channels/{channel_id}/playlists |
| チャンネルのコミュニティ投稿 | youtube/channels/{channel_id}/community |
| チャンネル内検索 | youtube/channels/{channel_id}/search (?q=...) |
| 動画メタデータ | youtube/videos/{video_id} |
| 関連動画 | youtube/videos/{video_id}/related |
| 動画コメント | youtube/videos/{video_id}/comments (オプション sort_by = top/newest) |
| 動画キャプション / トランスクリプト | youtube/videos/{video_id}/captions |
| プレイリストページ / 動画 | youtube/playlists/{playlist_id} · .../videos |
ここに載っていないフィールドが必要ですか? 呼び出す前に unifapi スキルの get_operation を使って
正確なスキーマを読みます — ただしオペレーションはこの表から選び、当てずっぽうで
探さないでください。
ワークフロー
決定論的なレシピ。ジョブに合うものを選びます。各レシピは、呼び出すべきものを 正確に明示します。
- クエリを枠付けする。 トピックを誰が所有しているかには
youtube/search?q=...を、 今急上昇しているものにはyoutube/trendingを呼び出します。 - チャンネルを解決する。
youtube/resolve/channel-id?url=...を呼び出してchannel_idを取得し、続いてyoutube/channels/{channel_id}でsubscriber_count、video_count、view_countを取得します。 - チャンネルのアウトプットを読む。
youtube/channels/{channel_id}/videos(および.../shorts)を呼び出します。各動画のview_countが需要シグナルです。next_cursorでページングします。youtube/channels/{channel_id}/playlistsはカタログがどう 整理されているかをマッピングし、youtube/channels/{channel_id}/communityは動画外の 告知とエンゲージメントを読み、youtube/channels/{channel_id}/search?q=...はカタログ全体を スキャンせずにクリエイターの 1 トピックのカバレッジを見つけます。 - 動画とその近傍を読む。 メタデータ(
like_count、category、published_at、has_captionsを含むようになりました)にはyoutube/videos/{video_id}を、続いて 隣接する需要と競合コンテンツをマッピングするにはyoutube/videos/{video_id}/relatedを 呼び出します。 - オーディエンスとトランスクリプトを読む。 オーディエンスが何を言っているか — 生の
コメントテキスト、いいねとリプライ数 — には
youtube/videos/{video_id}/comments(sort_bytop/newest)を呼び出します。センチメントや FAQ のグループ化はあなたが 計算するもので、API はテキストのみを返します。トランスクリプトを読んだり分析したりするための キャプショントラック(言語ごとのタイムドテキスト url)にはyoutube/videos/{video_id}/captionsを呼び出します。 - プレイリストまたはハッシュタグを辿る。
youtube/playlists/{playlist_id}の後.../videosを呼び出し、キュレーションされたシリーズを順番に取り込みます。youtube/hashtags/{tag}/videosはクリエイターをまたぐキャンペーンやトレンドを追跡します。 - トピック需要をサイジングする。 あるトピックについて、検索結果と関連結果にわたって
view_countを集約します。title、description、keywordsはトピックがどう フレームされているかを示します。 - すべてを引用する。 すべての数値は、それが由来する動画またはチャンネルに結びつきます。
billing.records_chargedを報告します(billing メタデータがないときは見積もります)。
形状ノート
YouTubeChannel—{channel_id}でキー付け。subscriber_count、video_count、view_count、handle、keywords、links、country、created_at。is_verifiedは 上流から populate されず、常にfalseです — 読めない 認証を報告しないでください。YouTubeVideo—{video_id}でキー付け。view_count、like_count(ベストエフォート、クリエイターが隠すと0)、category、channel_id、author、duration_seconds、keywords、published_at、has_captions、is_live、is_private。YouTubeVideoPreview— 検索/関連/リストの行:published_timeを追加。categoryは形状の一部ですがリスト行では空です(YouTubeVideoの詳細だけが 保持します)。YouTubeComment—text、author、author_channel_id、like_count、reply_count、published_time、is_verified、is_creator。テキストのみ — センチメントフィールドはありません。YouTubeCaptions—video_id、tracks[](language_code、タイムドテキストのurl、is_translatable)、translation_languages[]。単一オブジェクト、1 レコードとして課金。トラック url は時間制限付きです。YouTubePlaylist/YouTubePlaylistPreview— プレイリストのtitle、channel_id、author、video_count(詳細はview_count、last_updatedを追加、プレビューはfirst_video_idを追加)。YouTubeChannelPreview— チャンネル検索の行:title、handle、description、subscriber_count、video_count。YouTubeCommunityPost—text、author、vote_count、reply_count、attachment_type、image_url。
落とし穴
- 解決はチャンネル id にしか行かない。
youtube/resolve/channel-id?url=...はハンドルや URL を{channel_id}に解決します — あらゆるyoutube/channels/{channel_id}/...の呼び出しの 前 に呼び出します。動画 id や プレイリスト id のリゾルバはありません。既知の{video_id}/{playlist_id}を 渡します(URL から自分でパースします)。 - コメントは生のテキスト。
youtube/videos/{video_id}/commentsはコメント テキストといいね/リプライ数を返します — センチメントなし、FAQ のグループ化なし。 それらはテキストから自分で計算します。API が返さないセンチメントフィールドを 主張しないでください。 like_countはベストエフォート。 クリエイターがいいねを隠すとYouTubeVideo.like_countは0です —0は「非表示またはなし」として扱い、 権威あるものとしないでください。- チャンネルの
is_verifiedは常にfalseです(上流が公開していない) — チャンネルの認証を報告しないでください。 - キャプションは空でありうる。 キャプション無効の動画は
tracks: []を返します。 トランスクリプトを約束する前に確認します。トラック url は時間制限付きです。 - ハッシュタグ は、先頭の
#の有無にかかわらずタグを取ります (youtube/hashtags/lofi/videos)。 - 残高が少ないと、リストページが静かに切り捨てられることがあります:
billing.truncated_due_to_balanceを確認します — true のときページは部分的です。
出力
呼び出し元のワークフローが必要とするレコードを、それぞれの動画またはチャンネルに引用して返し、
加えて 1 行のコストノート(records_charged)を付けます。このスキルが直接使われる場合は、
コンパクトな需要ブリーフがデフォルトです。
**{Channel}** — {subscribers} subscribers, {videos} videos, {totalViews} views. Top videos for {topic}: {title} ({views} views). Related/competitors: {channels}. Evidence: {URLs}. Records: ~{N}.
関連スキル
- kol-pricing、creator-shortlist、audience-fit-check(Influencer Marketing) — この読み取りパスの上に YouTube チャンネルを価格付け・精査する。
- competitor-profiling(Competitive Intelligence)、content-opportunity-brief(Content Strategy) — まず YouTube を読む反応とコンテンツ需要の作業。
- unifapi — 共有データスキル: MCP を接続し、
get_operationで正確なスキーマを調べる。
ソース: GitHub 上の youtube/SKILL.md — 改善するにはそちらで PR を開いてください。
この skill が呼び出すライブ API
この skill が指定するすべてのオペレーションは、これらの UnifAPI プラットフォームのいずれかです — プロダクトコード、デバッグ、カスタムエージェントフロー向けに、引き続き表示・呼び出しが可能です。
- チャンネル/動画のよくある読み取りジョブごとの具体的な `youtube/...` 操作
- チャンネルと動画(再生回数)のレスポンスコントラクトと形式に関するメモ
- 決定論的なレシピ:チャンネルの解決、需要の読み取り、関連コンテンツの発見
- プラットフォーム固有の注意点(コメント一覧なし、view_count シグナル、カーソルページネーション)