Videos Search
Paid Videos Search proxy via x402 pay-per-use (HTTP 402).
Prerequisites: This skill requires x402-payment. Complete the setup steps before first use.
Security: Documentation only — no executable code or credentials. Wallet/keys stay on your machine; never stored here.
Service URLs
| Role | Domain |
|---|
| API Provider | https://www.cpbox.io |
| Facilitator |
https://www.cppay.finance |
Endpoint (Agent Interface)
CODEBLOCK0
Payment Flow (x402 Protocol)
- 1. First request ->
402 Payment Required with requirements JSON - Sign & retry with
PAYMENT-SIGNATURE -> result JSON
With @springmint/x402-payment or x402-sdk-go, payment is automatic.
Quick Start (cURL)
Basic Search
CODEBLOCK1
With Parameters
CODEBLOCK2
Using with x402-payment
CODEBLOCK3
Parameters
| Parameter | Type | Required | Default | Description |
|---|
| INLINECODE4 | string | Yes | - | Search query (1-400 chars, max 50 words) |
| INLINECODE5 |
string | No |
US | Search country (2-letter country code or
ALL) |
|
search_lang | string | No |
en | Language preference (2+ char language code) |
|
ui_lang | string | No |
en-US | UI language (e.g., "en-US") |
|
count | int | No |
20 | Number of results (1-50) |
|
offset | int | No |
0 | Page offset (0-9) |
|
safesearch | string | No |
moderate | Adult content filter (
off/
moderate/
strict) |
|
freshness | string | No | - | Time filter (
pd/
pw/
pm/
py or date range) |
|
spellcheck | bool | No |
true | Auto-correct query |
|
operators | bool | No |
true | Apply search operators |
|
include_fetch_metadata | bool | No |
false | Include
fetched_content_timestamp in results |
Freshness Values
| Value | Description |
|---|
| INLINECODE33 | Past day (24 hours) |
| INLINECODE34 |
Past week (7 days) |
|
pm | Past month (31 days) |
|
py | Past year (365 days) |
|
YYYY-MM-DDtoYYYY-MM-DD | Custom date range |
Response Format
CODEBLOCK4
Response Fields
| Field | Type | Description |
|---|
| INLINECODE38 | string | Always INLINECODE39 |
| INLINECODE40 |
string | The original search query |
|
query.altered | string? | Spellcheck-corrected query (if changed) |
|
query.cleaned | string? | Cleaned/normalized query |
|
query.spellcheck_off | bool? | Whether spellcheck was disabled |
|
query.show_strict_warning | bool? | True if strict safesearch blocked adult results |
|
query.search_operators | object? | Applied search operators (
applied,
cleaned_query,
sites) |
|
extra.might_be_offensive | bool | Whether results may contain offensive content |
|
results[].type | string | Always
"video_result" |
|
results[].url | string | Source URL of the video |
|
results[].title | string | Video title |
|
results[].description | string? | Video description |
|
results[].age | string? | Human-readable age (e.g. "6 months ago") or absolute date (e.g. "February 12, 2025") |
|
results[].page_age | string? | Page age from source (ISO datetime) |
|
results[].page_fetched | string? | ISO datetime when page was last fetched (e.g.
2025-02-12T15:00:00Z) |
|
results[].fetched_content_timestamp | int? | Fetch timestamp (only with
include_fetch_metadata=true) |
|
results[].video.duration | string? | Time string (variable format) |
|
results[].video.views | int? | View count as integer |
|
results[].video.creator | string? | Channel/creator name |
|
results[].video.publisher | string? | Platform (YouTube, Vimeo, etc.) |
|
results[].video.requires_subscription | bool? | Whether video requires a subscription |
|
results[].video.tags | list[str]? | Tags relevant to the video |
|
results[].video.author | object? | Author profile |
|
results[].video.author.name | string | Author name |
|
results[].video.author.url | string | Author profile URL |
|
results[].video.author.long_name | string? | Extended author name |
|
results[].video.author.img | string? | Author profile image URL |
|
results[].thumbnail.src | string | Served thumbnail URL |
|
results[].thumbnail.original | string? | Original thumbnail URL |
|
results[].meta_url.scheme | string? | URL protocol scheme |
|
results[].meta_url.netloc | string? | Network location |
|
results[].meta_url.hostname | string? | Lowercased domain name |
|
results[].meta_url.favicon | string? | Favicon URL |
|
results[].meta_url.path | string? | URL path |
Search Operators
Use search operators to refine results:
- -
site:youtube.com - Limit to specific site - INLINECODE80 - Match exact phrase
- INLINECODE81 - Exclude term
Set operators=false to disable operator parsing.
Use Cases
- - Video content research: Find tutorials, explainers, and reviews by topic. Use the
video.duration, video.views, and video.creator metadata to filter and rank results programmatically. Prefer videos-search over web-search when you need a dedicated video index with richer metadata (duration, views, creator, tags) and up to 50 results per request. - Fresh video monitoring: Use
freshness=pd or freshness=pw to track newly published video content on trending topics or specific subjects. - Platform-specific search: Use
site:youtube.com or site:vimeo.com operators to target specific video platforms. - Video metadata extraction: Get view counts, durations, creator info, and tags for analytics, content curation, or recommendation systems.
Notes
- - Pagination: Use
offset (0-9) with count for more results - Max results: Up to 50 results per request
视频搜索
通过 x402 按次付费(HTTP 402)的付费视频搜索代理。
前置条件:此技能需要 x402 支付。首次使用前请完成设置步骤。
安全性:仅提供文档——不包含可执行代码或凭证。钱包/密钥保留在您的机器上;绝不存储在此处。
服务 URL
| 角色 | 域名 |
|---|
| API 提供商 | https://www.cpbox.io |
| 协调方 |
https://www.cppay.finance |
端点(代理接口)
http
GET /api/x402/videos-search
POST /api/x402/videos-search/post
支付流程(x402 协议)
- 1. 首次请求 -> 返回 402 Payment Required 及需求 JSON
- 签名并重试,携带 PAYMENT-SIGNATURE -> 返回结果 JSON
使用 @springmint/x402-payment 或 x402-sdk-go 时,支付自动完成。
快速开始(cURL)
基础搜索
bash
curl -s https://www.cpbox.io/api/x402/videos-search?q=python+tutorial \
-H Accept: application/json
带参数搜索
bash
curl -s https://www.cpbox.io/api/x402/videos-search \
-H Accept: application/json \
-G \
--data-urlencode q=machine learning explained \
--data-urlencode country=US \
--data-urlencode search_lang=en \
--data-urlencode count=20 \
--data-urlencode freshness=pm
使用 x402-payment
bash
npx @springmint/x402-payment \
--url https://www.cpbox.io/api/x402/videos-search?q=python+tutorial&count=20 \
--method GET
参数
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|
| q | string | 是 | - | 搜索查询(1-400 字符,最多 50 个单词) |
| country |
string | 否 | US | 搜索国家(2 字母国家代码或 ALL) |
| search_lang | string | 否 | en | 语言偏好(2 个以上字符的语言代码) |
| ui_lang | string | 否 | en-US | 界面语言(例如 en-US) |
| count | int | 否 | 20 | 结果数量(1-50) |
| offset | int | 否 | 0 | 分页偏移量(0-9) |
| safesearch | string | 否 | moderate | 成人内容过滤器(off/moderate/strict) |
| freshness | string | 否 | - | 时间过滤器(pd/pw/pm/py 或日期范围) |
| spellcheck | bool | 否 | true | 自动纠正查询 |
| operators | bool | 否 | true | 应用搜索运算符 |
| include
fetchmetadata | bool | 否 | false | 在结果中包含 fetched
contenttimestamp |
新鲜度值
过去一周(7 天) |
| pm | 过去一个月(31 天) |
| py | 过去一年(365 天) |
| YYYY-MM-DDtoYYYY-MM-DD | 自定义日期范围 |
响应格式
json
{
type: videos,
query: {
original: python tutorial,
spellcheck_off: false
},
extra: {
mightbeoffensive: false
},
results: [
{
type: video_result,
title: Python Tutorial for Beginners,
url: https://www.youtube.com/watch?v=rfscVS0vtbw,
description: Learn Python programming from scratch...,
age: February 12, 2025,
page_age: 2025-02-12T00:00:00,
page_fetched: 2025-02-12T15:00:00Z,
thumbnail: {
src: https://imgs.search.provider/...,
original: https://i.ytimg.com/vi/rfscVS0vtbw/hqdefault.jpg
},
video: {
duration: 03:45:00,
views: 1523000,
creator: freeCodeCamp,
publisher: YouTube,
requires_subscription: false,
tags: [python, programming],
author: {
name: freeCodeCamp.org,
url: https://www.youtube.com/@freecodecamp
}
},
meta_url: {
scheme: https,
netloc: youtube.com,
hostname: www.youtube.com,
favicon: https://imgs.search.provider/...,
path: \u203a watch
}
}
]
}
响应字段
| 字段 | 类型 | 描述 |
|---|
| type | string | 始终为 videos |
| query.original |
string | 原始搜索查询 |
| query.altered | string? | 拼写检查修正后的查询(如有变化) |
| query.cleaned | string? | 清理/标准化后的查询 |
| query.spellcheck_off | bool? | 拼写检查是否已禁用 |
| query.show
strictwarning | bool? | 严格安全搜索阻止成人结果时为 true |
| query.search
operators | object? | 应用的搜索运算符(applied、cleanedquery、sites) |
| extra.might
beoffensive | bool | 结果是否可能包含冒犯性内容 |
| results[].type | string | 始终为 video_result |
| results[].url | string | 视频的源 URL |
| results[].title | string | 视频标题 |
| results[].description | string? | 视频描述 |
| results[].age | string? | 人类可读的时长(例如 6 months ago)或绝对日期(例如 February 12, 2025) |
| results[].page_age | string? | 来自源的页面时长(ISO 日期时间) |
| results[].page_fetched | string? | 页面最后获取时的 ISO 日期时间(例如 2025-02-12T15:00:00Z) |
| results[].fetched
contenttimestamp | int? | 获取时间戳(仅在 include
fetchmetadata=true 时) |
| results[].video.duration | string? | 时间字符串(格式可变) |
| results[].video.views | int? | 观看次数(整数) |
| results[].video.creator | string? | 频道/创作者名称 |
| results[].video.publisher | string? | 平台(YouTube、Vimeo 等) |
| results[].video.requires_subscription | bool? | 视频是否需要订阅 |
| results[].video.tags | list[str]? | 与视频相关的标签 |
| results[].video.author | object? | 作者资料 |
| results[].video.author.name | string | 作者名称 |
| results[].video.author.url | string | 作者资料 URL |
| results[].video.author.long_name | string? | 扩展作者名称 |
| results[].video.author.img | string? | 作者资料图片 URL |
| results[].thumbnail.src | string | 提供的缩略图 URL |
| results[].thumbnail.original | string? | 原始缩略图 URL |
| results[].meta_url.scheme | string? | URL 协议方案 |
| results[].meta_url.netloc | string? | 网络位置 |
| results[].meta_url.hostname | string? | 小写域名 |
| results[].meta_url