skills/oxylabs/agent-skills/oxylabs-video-data

oxylabs-video-data

SKILL.md

Oxylabs Video Data

YouTube data extraction via API and high-bandwidth proxies for video/audio downloading.

Two Approaches

Method Use Case
Video Data API Metadata, transcripts, search results (structured data)
High-Bandwidth Proxies Video/audio downloads with yt-dlp

Video Data API

Uses the same endpoint as Web Scraper API with YouTube-specific sources.

Endpoint

POST https://realtime.oxylabs.io/v1/queries
Content-Type: application/json

Authentication

curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...

Available Sources

Source Description
youtube_search Search results (videos, channels, playlists)
youtube_metadata Video metadata (title, views, likes, description)
youtube_transcript Video transcripts
youtube_subtitles Closed captions/subtitles
youtube_channel Channel data and video lists

Quick Start

Video metadata:

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"
  }'

YouTube search:

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"
  }'

Video transcript:

curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \
  -H 'Content-Type: application/json' \
  -d '{
    "source": "youtube_transcript",
    "query": "dQw4w9WgXcQ"
  }'

Channel data:

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",
    "query": "@channelhandle"
  }'

High-Bandwidth Proxies (Video Downloads)

For actual video/audio file downloads using yt-dlp.

Setup

Contact Oxylabs sales team to get a dedicated high-bandwidth endpoint.

Default configuration:

  • Port: 60000
  • Endpoint: Provided after purchase

Connection Test

curl -x "http://USERNAME-test:PASSWORD@YOUR_ENDPOINT:60000" \
  "https://ip.oxylabs.io/location"

yt-dlp Integration

With session rotation (different IP per download):

yt-dlp --proxy "http://USERNAME-Random1Session2ID:PASSWORD@YOUR_ENDPOINT:60000" \
  "https://www.youtube.com/watch?v=VIDEO_ID"

Change the session ID for each download to get a fresh IP.

Python with yt-dlp

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"])

Choosing the Right Method

Need Method
Video metadata (title, views, likes) Video Data API
Search results Video Data API
Transcripts/subtitles Video Data API
Channel information Video Data API
Download video files High-Bandwidth Proxies + yt-dlp
Download audio files High-Bandwidth Proxies + yt-dlp

For more examples, see examples.md.

Weekly Installs
3
GitHub Stars
8
First Seen
Feb 18, 2026
Installed on
amp3
gemini-cli3
claude-code3
github-copilot3
codex3
kimi-cli3