youtube-full について
youtube-fullは、スクリプトやアプリでYouTube APIの操作を自動化するスキルです。動画、字幕、チャンネル、コメント、プレイリスト、アップロードを扱う開発者やワークフロー向けです。
主な機能
- 01動画の取得、検索、削除
- 02動画字幕の抽出
- 03チャンネル統計の取得
- 04コメントの読み取りと投稿
- 05プレイリストの管理
- 06動画のアップロード
活用シーン
- 01コンテンツ分析用の字幕抽出
- 02チャンネル指標の確認
- 03メディアアプリでのプレイリスト管理
- 04ユーザー作成動画のアップロード
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill youtube-fullインストール後、Claude Code で/youtube-fullを入力して読み込まれたか確認します。
詳細
youtube-full
目的
このスキルは、YouTube API と連携して、動画管理、文字起こしの抽出、チャンネル分析、コメント、再生リスト、アップロードに対応するツールを提供し、スクリプトやアプリケーションでの自動化を可能にします。
使用する場面
コンテンツ分析で動画の文字起こしを取得する、ユーザーが作成した動画をアップロードする、レポート作成のためにチャンネルのパフォーマンスを分析する、メディアアプリで再生リストを管理するといった、YouTube データを扱うタスクにこのスキルを使用します。Google API にアクセスでき、リアルタイムでのデータ抽出や操作が必要なタスクに適用してください。
主な機能
- 動画管理:/youtube/v3/videos などの YouTube Data API v3 エンドポイントを使用して、動画を取得、検索、削除します。
- 文字起こしの抽出:/youtube/v3/captions エンドポイント経由で動画の字幕を取得し、英語などの言語や自動生成された文字起こしに対応します。
- チャンネル分析:/youtube/v3/channels から、日付範囲のパラメーターを含む視聴回数や登録者データなどの指標にアクセスします。
- コメント:スパム処理用のモデレーションフラグを使用して、/youtube/v3/commentThreads 経由でスレッド形式のコメントを読み込んだり投稿したりします。
- 再生リスト:/youtube/v3/playlists 経由で、動画アイテムの追加を含め、再生リストの作成、更新、削除を行います。
- アップロード:/youtube/v3/videos へのマルチパート POST で動画のアップロードを処理します。大きなファイルには再開可能なセッションが必要です。
使用パターン
AI エージェントのコードで関数呼び出しを使ってこのスキルを呼び出し、動画 ID や API キーなどの必須パラメーターを渡します。環境変数として $YOUTUBE_API_KEY を設定し、最初に認証を確認してください。たとえば、複数の動画の文字起こしを処理するような一括操作では、リクエストをループで構成します。POST リクエストには JSON ペイロードを、GET リクエストにはクエリパラメーターを使用します。レート制限に対応するには、API 呼び出しの間に遅延を追加します。たとえば、10 回リクエストするごとに 1 秒スリープします。
主なコマンド/API
- 動画を一覧表示するには:クエリ文字列パラメーターを指定して、GET https://www.googleapis.com/youtube/v3/search?part=snippet&q=query&key=$YOUTUBE_API_KEY を使用します。
- 文字起こしを抽出するには:GET https://www.googleapis.com/youtube/v3/captions?videoId=VIDEO_ID&key=$YOUTUBE_API_KEY を実行し、JSON レスポンスを解析してテキストを取得します。
- 動画の詳細を取得するコードスニペット:
import requests; import os api_key = os.environ.get('YOUTUBE_API_KEY') response = requests.get(f'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=VIDEO_ID&key={api_key}') data = response.json() - 動画をアップロードするには:title や file などのフィールドを含む multipart/form-data を使用して、POST https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status を実行します。
- チャンネル分析では:GET https://www.googleapis.com/youtube/v3/channels?part=statistics&id=CHANNEL_ID&key=$YOUTUBE_API_KEY を実行すると、viewCount などの指標を含む JSON が返されます。
- 再生リストの管理:JSON ボディ {"snippet": {"title": "New Playlist"}} を使用して、POST https://www.googleapis.com/youtube/v3/playlists?part=snippet を実行します。
統合に関する注意事項
AI エージェントのコードベースにこのスキルをインポートし、OAuth または API キー認証のために環境変数に $YOUTUBE_API_KEY が設定されていることを確認して統合します。エンドポイントのデフォルト値の保存には、例として {"base_url": "https://www.googleapis.com/youtube/v3"} のような JSON 設定ファイルを使用します。キーをハードコードせず、Python の google-auth などのライブラリを使用して安全に取り扱ってください。OAuth を使用する場合は、トークン交換のためにユーザーをリダイレクトします。シンプルな API アクセスであれば、$YOUTUBE_API_KEY で十分です。割り当て上限を超えないよう、サンドボックス環境で統合をテストしてください。
エラー処理
レスポンスの HTTP ステータスコードを確認してください。たとえば、status == 403 の場合は「Quota exceeded」と記録し、遅延後に再試行します。無効な動画 ID(エラーコード 404)など、YouTube 固有のエラーには、リクエスト前に入力を検証して対処します。ネットワークの問題に備えて、コードでは try-except ブロックを使用してください。
try:
response = requests.get(url)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"Error: {err} - Check API key or parameters")
レート制限エラー(たとえば、割り当てに関するメッセージを伴う 403)に対して指数バックオフを実装し、最大 3 回再試行するまで 2^x 秒待機します。使用した API エンドポイントやパラメーターなどのコンテキストとともに、すべてのエラーを記録してください。
使用例
- 特定の動画の字幕を抽出します。まず、$YOUTUBE_API_KEY を設定します。次に、GET https://www.googleapis.com/youtube/v3/captions?videoId=VIDEO_ID&key=$YOUTUBE_API_KEY を使用して API を呼び出します。コードでレスポンスを解析し、テキストを抽出します:import json; transcript = [item['text'] for item in response.json()['items']]. 出力をファイルに保存して、以降の処理に使用します。
- 動画をチャンネルにアップロードします。$YOUTUBE_API_KEY が設定され、アップロード権限があることを確認します。動画ファイルと、{"snippet": {"title": "Uploaded Video"}} のような JSON メタデータを含むマルチパートデータを使って、POST https://www.googleapis.com/upload/youtube/v3/videos を呼び出します。アップロード後、レスポンスから動画 ID を取得し、必要に応じてステータスを更新します。
グラフの関係
- 関連先:google-api(認証とエンドポイントを共有)
- 依存先:authentication-service($YOUTUBE_API_KEY の処理)
- 接続先:動画処理スキル(抽出後の分析)
- 統合先:storage-services(アップロードしたファイルの管理)