关于 oxylabs-video-data
这是一份使用 Oxylabs 服务提取 YouTube 数据及下载视频、音频的技能指南,介绍通过 Video Data API 获取结构化数据,以及使用高带宽代理和 yt-dlp 下载媒体。
主要功能
- 01YouTube 搜索与自动补全
- 02视频元数据和频道数据
- 03字幕与训练许可状态查询
- 04将视频或音频下载到云存储
- 05通过代理使用 yt-dlp 下载
适用场景
- 01收集 YouTube 搜索结果和元数据
- 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 数据,下载视频/音频。
两种方式
| 方法 | 适用场景 |
|---|---|
| 视频数据 API | 元数据、字幕、搜索结果(结构化数据) |
| 高带宽代理 | 使用 yt-dlp 下载视频/音频 |
视频数据 API
使用与 Web Scraper API 相同的端点,并采用 YouTube 专用数据源。
端点
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 | 将视频/音频推送到云存储并下载 |
数据源参数
| 数据源 | 必填 | 常见可选参数 |
|---|---|---|
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。批量下载时,请使用 /v1/queries/batch,且只提供 query 数组;其他所有参数都应为单个值。
快速开始
视频元数据:
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"
每次下载都要更改会话 ID,以获取新的 IP。
使用 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。