mcpField
V
video-data

video-data

github.com/oxylabsデータ・データベース87775 回インストール2 週間前に更新
リポジトリ

video-data について

Oxylabs APIによるYouTubeデータ抽出と、高帯域幅プロキシ経由の動画・音声ダウンロードを説明するスキルガイドです。構造化データの取得とyt-dlpを使うファイルダウンロードを分けて扱います。

主な機能

  1. 01YouTubeメタデータと検索結果の取得
  2. 02字幕とチャンネルデータの抽出
  3. 03オートコンプリートと学習可否の確認
  4. 04動画と音声のダウンロード
  5. 05Push-Pullによるクラウドストレージへの保存

活用シーン

  1. 01YouTube動画のメタデータ収集
  2. 02動画、チャンネル、再生リストの検索
  3. 03字幕とチャンネル動画一覧の取得
  4. 04yt-dlpを使ったメディアファイルのダウンロード

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oxylabs/agent-skills --skill video-data

インストール後、Claude Code で/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_trainabilityAI トレーニング許可のステータス
youtube_downloadPush-Pull による動画/音声のクラウドストレージへのダウンロード
ソースパラメーター
ソース必須一般的な任意パラメーター
youtube_search, youtube_search_maxqueryupload_date, type, duration, sort_by, 360, 3d, 4k, creative_commons, hd, hdr, live, location, purchased, subtitles, vr180
youtube_metadataquery, parse: truecallback_url。render は使用しないでください
youtube_channelchannel_handle, parse: truelimit, callback_url
youtube_subtitlesquery, context.language_codecontext.subtitle_origin:auto_generated または uploader_provided。callback_url
youtube_autocompletequery国コードの location、language、callback_url
youtube_video_trainabilityvideo_idcallback_url
youtube_downloadquery, storage_type, storage_urlcallback_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 をご覧ください。

コメント