List channel playlists
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/channels/{id}/playlists \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/channels/{id}/playlists', 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}/channels/{id}/playlists"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"channelId": "<string>",
"sort": "newest",
"playlists": [
{
"type": "playlist",
"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": "video2ctx",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"continuation": "<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>"
}
}Channels
List channel playlists
GET
/
v1
/
providers
/
{provider}
/
channels
/
{id}
/
playlists
List channel playlists
curl --request GET \
--url https://api.video2ctx.dev/v1/providers/{provider}/channels/{id}/playlists \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.video2ctx.dev/v1/providers/{provider}/channels/{id}/playlists', 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}/channels/{id}/playlists"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"channelId": "<string>",
"sort": "newest",
"playlists": [
{
"type": "playlist",
"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": "video2ctx",
"fetchedAt": "2023-11-07T05:31:56Z",
"partial": true,
"warnings": [
"<string>"
]
},
"continuation": "<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
bearerApiKeysessionCookiecliSessionapiKeydemoUser
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"
Provider channel ID or handle.
Minimum string length:
1Example:
"@YouTube"
Query Parameters
YouTube Playlists-tab ordering.
Available options:
newest, last-video-added Opaque token returned by the previous channel playlists response.