Browse a provider discovery feed
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/browse \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/browse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/providers/{provider}/browse"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"browseId": "<string>",
"results": [
{
"type": "<unknown>",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"videos": [
{
"type": "<unknown>",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"channels": [
{
"type": "<unknown>",
"id": "<string>",
"name": "<string>",
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"url": "<string>",
"description": "<string>",
"handle": "<string>",
"subscriberCountText": "<string>",
"videoCountText": "<string>"
}
],
"playlists": [
{
"type": "<unknown>",
"id": "<string>",
"title": "<string>",
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isPodcast": true,
"url": "<string>",
"description": "<string>",
"channel": {},
"videoCount": 1,
"videoCountText": "<string>",
"updatedTimeText": "<string>",
"playUrl": "<string>"
}
],
"meta": {
"provider": "youtube",
"source": "allthingsyoutube",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"title": "<string>",
"continuation": "<string>",
"estimatedTotal": 1
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Discovery
Browse a provider discovery feed
Returns queryless discovery results from a supported destination on the selected provider.
GET
/
v1
/
providers
/
{provider}
/
browse
Browse a provider discovery feed
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/browse \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/browse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.video2ctx.dev/v1/providers/{provider}/browse"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"browseId": "<string>",
"results": [
{
"type": "<unknown>",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"videos": [
{
"type": "<unknown>",
"id": "dQw4w9WgXcQ",
"title": "<string>",
"channel": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isLive": true,
"url": "<string>",
"description": "<string>",
"durationSeconds": 1,
"durationText": "<string>",
"publishedTimeText": "<string>",
"viewCount": 1,
"viewCountText": "<string>",
"hasCaptions": true
}
],
"channels": [
{
"type": "<unknown>",
"id": "<string>",
"name": "<string>",
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"url": "<string>",
"description": "<string>",
"handle": "<string>",
"subscriberCountText": "<string>",
"videoCountText": "<string>"
}
],
"playlists": [
{
"type": "<unknown>",
"id": "<string>",
"title": "<string>",
"thumbnails": [
{
"url": "<string>",
"width": 1,
"height": 1
}
],
"isPodcast": true,
"url": "<string>",
"description": "<string>",
"channel": {},
"videoCount": 1,
"videoCountText": "<string>",
"updatedTimeText": "<string>",
"playUrl": "<string>"
}
],
"meta": {
"provider": "youtube",
"source": "allthingsyoutube",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"title": "<string>",
"continuation": "<string>",
"estimatedTotal": 1
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}{
"error": {
"code": "QUERY_REQUIRED",
"message": "<string>",
"details": "<unknown>",
"requestId": "<string>"
}
}Authorizations
bearerApiKeysessionCookieapiKeydemoUser
Permanent personal API key created in the dashboard. Example: curl -H "Authorization: Bearer aty_…" https://your-host/v1/projects
Path Parameters
External video provider.
Available options:
youtube Example:
"youtube"
Query Parameters
Discovery category.
Available options:
music, news, sports, live Example:
"music"
Supported region code.
Available options:
US, IN Example:
"IN"
Supported language code.
Available options:
en, hi Example:
"en"
Opaque pagination token.
Response
Browse results.
Available options:
music, news, sports, live - Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Required range:
x >= 0⌘I