oxylabs-video-data について
OxylabsのサービスでYouTubeデータを取得し、動画や音声をダウンロードするためのスキルガイドです。Video Data APIによる構造化データ取得と、高帯域プロキシおよびyt-dlpによるメディア取得を説明します。
主な機能
- 01YouTube検索とオートコンプリート
- 02動画メタデータとチャンネル情報
- 03字幕と学習利用可否の照会
- 04動画・音声のクラウドストレージへの保存
- 05プロキシ経由のyt-dlpダウンロード
活用シーン
- 01YouTube検索結果とメタデータの収集
- 02チャンネル情報と字幕の取得
- 03動画または音声ファイルのダウンロード
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oxylabs/ agent-skills --skill oxylabs-video-dataインストール後、Claude Code で/oxylabs-video-dataを入力して読み込まれたか確認します。
同梱ファイルexamples.md
詳細
Oxylabs 動画データ
API と高帯域幅プロキシを利用した、YouTube データの抽出と動画/音声のダウンロード。
2 つの方法
| 方法 | 用途 |
|---|---|
| 動画データ API | メタデータ、字幕、検索結果(構造化データ) |
| 高帯域幅プロキシ | yt-dlp を使用した動画/音声のダウンロード |
動画データ API
YouTube 専用のソースを使用して、Web Scraper API と同じエンドポイントを利用します。
エンドポイント
POST https://realtime.oxylabs.io/v1/queries # immediate metadata/search/subtitle responses
POST https://data.oxylabs.io/v1/queries # Push-Pull downloads, callbacks, storage
Content-Type: application/json
認証
curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...
利用可能なソース
| ソース | 説明 |
|---|---|
youtube_search | 最大 20 件の検索結果(動画、チャンネル、再生リスト) |
youtube_search_max | 最大 700 件の検索結果 |
youtube_metadata | 動画のメタデータ(タイトル、再生回数、高評価数、説明) |
youtube_subtitles | クローズドキャプション/字幕 |
youtube_channel | チャンネルデータと動画リスト |
youtube_autocomplete | キーワード候補 |
youtube_video_trainability | AI トレーニング許可のステータス |
youtube_download | Push-Pull による動画/音声のクラウドストレージへのダウンロード |
ソースパラメーター
| ソース | 必須 | 一般的な任意パラメーター |
|---|---|---|
youtube_search, youtube_search_max | query | upload_date, type, duration, sort_by, 360, 3d, 4k, creative_commons, hd, hdr, live, location, purchased, subtitles, vr180 |
youtube_metadata | query, parse: true | callback_url。render は使用しないでください |
youtube_channel | channel_handle, parse: true | limit, callback_url |
youtube_subtitles | query, context.language_code | context.subtitle_origin:auto_generated または uploader_provided。callback_url |
youtube_autocomplete | query | 国コードの location、language、callback_url |
youtube_video_trainability | video_id | callback_url |
youtube_download | query, storage_type, storage_url | callback_url, context.download_type, context.video_quality, context.start_at, context.end_at |
youtube_download では、Push-Pull とクラウドストレージを使用します。storage_type は gcs、s3、または s3_compatible、download_type は audio、video、または audio_video、video_quality は best、worst、または 144、360、480、720、1080、1440、2160、4320 です。
ダウンロードの画質は、利用可能な場合、デフォルトで 720p となり、長さは 1 時間までです。start_at/end_at には hh:mm:ss を使用し、end_at は start_at より後の時刻にする必要があります。バッチダウンロードでは、query 配列のみを指定して /v1/queries/batch を使用し、その他のパラメーターはすべて単一の値にしてください。
クイックスタート
動画メタデータ:
curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{
"source": "youtube_metadata",
"query": "dQw4w9WgXcQ",
"parse": true
}'
YouTube 検索:
curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{
"source": "youtube_search",
"query": "python tutorial"
}'
チャンネルデータ:
curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
-u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
-H 'Content-Type: application/json' \
-d '{
"source": "youtube_channel",
"channel_handle": "@channelhandle",
"parse": true,
"limit": 10
}'
高帯域幅プロキシ(動画ダウンロード)
yt-dlp を使用して、実際の動画/音声ファイルをダウンロードします。
セットアップ
専用の高帯域幅エンドポイントを利用するには、Oxylabs の営業チームにお問い合わせください。
デフォルト設定:
- ポート:
60000 - エンドポイント:購入後に提供されます
OXY_HB_ENDPOINT を使用し、設定されていない場合は OXYLABS_HB_ENDPOINT を確認してください。
接続テスト
curl -x "http://USERNAME-test:PASSWORD@YOUR_ENDPOINT:60000" \
"https://ip.oxylabs.io/location"
yt-dlp との連携
セッションローテーションを使用する場合(ダウンロードごとに異なる IP):
yt-dlp --proxy "http://USERNAME-Random1Session2ID:PASSWORD@YOUR_ENDPOINT:60000" \
"https://www.youtube.com/watch?v=VIDEO_ID"
新しい IP を取得するには、ダウンロードごとにセッション ID を変更してください。
yt-dlp を使用した Python
import yt_dlp
import os
import uuid
username = os.environ["OXY_WSA_USERNAME"]
password = os.environ["OXY_WSA_PASSWORD"]
endpoint = os.environ["OXY_HB_ENDPOINT"] # Your dedicated endpoint
# Random session for unique IP
session_id = str(uuid.uuid4()).replace("-", "")
ydl_opts = {
"proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
"format": "best",
"outtmpl": "%(title)s.%(ext)s"
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
適切な方法の選択
| 必要なもの | 方法 |
|---|---|
| 動画メタデータ(タイトル、再生回数、高評価数) | 動画データ API |
| 検索結果 | 動画データ API |
| 字幕 | 動画データ API |
| チャンネル情報 | 動画データ API |
| 動画ファイルのダウンロード | 高帯域幅プロキシ + yt-dlp |
| 音声ファイルのダウンロード | 高帯域幅プロキシ + yt-dlp |
その他の例については、examples.md をご覧ください。