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
Repository
oxylabs/agent-skillsGitHub Stars
8
First Seen
Feb 18, 2026
Security Audits
Installed on
amp3
gemini-cli3
claude-code3
github-copilot3
codex3
kimi-cli3