YouTube API
YouTube APIを使用すると、統合された単一のインターフェースを通じてYouTubeを検索し、動画のメタデータを取得できます。各エンドポイントは、クレジット使用量の追跡を含む構造化されたJSONを返します。
エンドポイント
| エンドポイント | 説明 |
|---|---|
POST /api/v1/youtube/search | フィルター(日付、長さ、タイプ、品質)を使用してYouTubeを検索します |
POST /api/v1/youtube/metadata | 動画の構造化されたメタデータ(視聴回数、いいね、タグ、説明)を取得します |
認証
| ヘッダー | 値 | 必須 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | はい |
Content-Type | application/json | はい |
YouTube 検索
Bash
POST https://api.scavio.dev/api/v1/youtube/searchYouTubeを検索し、構造化された結果を取得します。アップロード日、長さ、結果タイプ、動画品質などでフィルタリングできます。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
search | string | -- | 必須。 検索クエリ(1~500文字)。 |
upload_date | string | -- | アップロード日でフィルタリング。次のいずれか: last_hour、 today、 this_week、 this_month、 this_year |
type | string | -- | 結果タイプでフィルタリング。次のいずれか: video、 channel、 playlist |
duration | string | -- | 動画の長さでフィルタリング。次のいずれか: short(4分未満)、 medium(4~20分)、 long(20分超) |
sort_by | string | relevance | 並び順。次のいずれか: relevance、 date、 view_count、 rating |
hd | boolean | false | HD動画のみ |
4k | boolean | false | 4K動画のみ |
subtitles | boolean | false | 字幕付き動画のみ |
creative_commons | boolean | false | クリエイティブ・コモンズライセンスの動画のみ |
live | boolean | false | ライブ配信のみ |
hdr | boolean | false | HDR動画のみ |
360 | boolean | false | 360度動画のみ |
3d | boolean | false | 3D動画のみ |
location | boolean | false | 位置情報メタデータ付き動画のみ |
vr180 | boolean | false | VR180動画のみ |
例
curl -X POST 'https://api.scavio.dev/api/v1/youtube/search' \
-H 'Authorization: Bearer sk_live_your_key' \
-H 'Content-Type: application/json' \
-d '{
"search": "langchain tutorial",
"type": "video",
"duration": "medium",
"sort_by": "view_count",
"upload_date": "this_year"
}'レスポンス例
JSON
{
"data": {
"results": [
{
"videoId": "sVcwVQRHIc8",
"title": { "runs": [{ "text": "Learn RAG From Scratch - Python AI Tutorial" }] },
"longBylineText": { "runs": [{ "text": "freeCodeCamp.org" }] },
"publishedTimeText": { "simpleText": "1 year ago" },
"lengthText": { "simpleText": "2:33:11" },
"viewCountText": { "simpleText": "1,258,310 views" },
"thumbnail": { "thumbnails": [{ "url": "https://i.ytimg.com/vi/sVcwVQRHIc8/hq720.jpg", "width": 360, "height": 202 }] }
}
],
"search": "langchain tutorial"
},
"response_time": 1230,
"credits_used": 1,
"credits_remaining": 999
}動画メタデータ
Bash
POST https://api.scavio.dev/api/v1/youtube/metadataYouTube動画の構造化されたメタデータを取得します。タイトル、説明、視聴回数、いいね数、コメント数、タグ、サムネイル、アップロード日、チャンネル情報、利用可能なフォーマットが含まれます。
リクエストボディ
| パラメータ | 型 | 説明 |
|---|---|---|
video_id | string | 必須。 YouTube動画ID(例: dQw4w9WgXcQ)。 |
例
curl -X POST 'https://api.scavio.dev/api/v1/youtube/metadata' \
-H 'Authorization: Bearer sk_live_your_key' \
-H 'Content-Type: application/json' \
-d '{"video_id": "sVcwVQRHIc8"}'レスポンス例
JSON
{
"data": {
"title": "Learn RAG From Scratch - Python AI Tutorial",
"description": "Learn how to implement RAG from scratch...",
"upload_date": 20240417,
"duration": 9191,
"view_count": 1258310,
"like_count": 23211,
"comment_count": 295,
"categories": ["Education"],
"tags": ["rag", "langchain", "python", "llm"],
"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ",
"channel_url": "https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ",
"uploader": "freeCodeCamp.org",
"uploader_id": "@freecodecamp",
"uploader_url": "https://www.youtube.com/@freecodecamp",
"video_id": "sVcwVQRHIc8",
"is_live": false,
"age_limit": 0,
"thumbnails": [
{
"url": "https://i.ytimg.com/vi/sVcwVQRHIc8/maxresdefault.jpg",
"width": 1280,
"height": 720
}
],
"formats": []
},
"response_time": 890,
"credits_used": 1,
"credits_remaining": 998
}レスポンス形式
すべてのYouTubeエンドポイントは、一貫したレスポンスラッパーを返します。
| フィールド | 型 | 説明 |
|---|---|---|
data | object | null | レスポンスペイロード。形状はエンドポイントによって異なります。検索は{results, search}を返し、メタデータは動画オブジェクトを返します。上流でリクエストが失敗した場合はnullになります。 |
response_time | number | サーバー側の応答時間(ミリ秒) |
credits_used | number | このリクエストで消費したクレジット数 |
credits_remaining | number | 現在の請求期間における残りのクレジット |
エラーレスポンス
| ステータス | 説明 |
|---|---|
401 | 認証されていません -- APIキーがないか無効です |
429 | レートまたは使用制限を超えました(プランによる) |
502 | 上流エラー -- しばらく待ってから再試行してください |
503 | 上流が利用できません -- 後で再試行してください |
完全なエラーリファレンスと再試行のベストプラクティスについては、エラーを参照してください。
関連情報
- クイックスタート -- APIキーを取得して最初のリクエストを行います
- Google検索API -- 構造化されたSERPデータでGoogleを検索します
- Amazon API -- 商品を検索し、ASINで詳細を取得します
- レート制限 -- プラン階層ごとの制限
- エラー -- エラーコードと処理