Видео API
Видео API е основният endpoint за получаване на видео съдържание. Поддръжка за мощно филтриране, сортиране и маркиране.
Списък с Видео
Получава пагинирания списък с видеа. Този endpoint е много пластичен и приема няколко параметра за запитване, за да се подобри резултатите. Отговорът съдържа масив от Обекти VideoSummary.
GET /videos
Параметри на Запитването
Име | Тип | Описание |
---|---|---|
path | string | Допълнителен. Филтрира видеата до конкретен път на събирание, например root/movies . |
filters | object | Допълнителен. Филтрира по метаданни. Вижте Примери за филтриране долу за синтаксиса. |
tags | string | Допълнителен. Списък от тагове, разделени с запетая, за да се филтрират (например, laravel,api ). Намерява видеата със всички посочени тагове. |
sort | string | Допълнителен. Сортира резултатите. Използвайте префикс - за по-старо. Допустими полета: created_at , title , duration_in_seconds . Default: -created_at . |
per_page | integer | Допълнителен. Брой резултати на страница. Default: 15 , Максимум: 100 . |
Примери за Филтриране
Параметъра filters
е най-мощният функционалитет. Синтаксисът е filters[field_name][operator]=value
.
Филтриране по Път на Събирание
Това намерява всички видеа в папката education/php
.
GET /api/client/v1/videos?path=root/education/php
Филтриране по Единично Поле за Метаданни (Равно)
Това намерява всички видеа, където полето genre
е ‘Action’, безразлично на големината. Използването на директна стойност е кратко за оператора eq
(равно).
GET /api/client/v1/videos?filters[genre]=Action
Филтриране по Път и Метаданни
Това намерява всички видеа ‘начало’ в конкретната папка fitness/yoga
.
GET /api/client/v1/videos?path=root/fitness/yoga&filters[difficulty]=beginner
Филтриране по “Повече от” (gt
)
Това намерява всички видеа дължи над 10 минути (600 секунди).
GET /api/client/v1/videos?filters[duration_in_seconds][gt]=600
Филтриране по “Може би или равно на” (lte
)
Това намерява всички видеа с оценка 3 или по-ниско.
GET /api/client/v1/videos?filters[rating][lte]=3
Филтриране по “В списък” (in
)
Това намерява всички видеа, където трудността е или ‘начало’ или ‘средно’.
GET /api/client/v1/videos?filters[difficulty][in]=beginner,intermediate
Филтриране по “Не равно” (neq
)
Това намерява всички видеа, където предавателят не е ‘Jane Doe’.
GET /api/client/v1/videos?filters[presenter][neq]=Jane Doe
Примери за Сортиране и Маркиране
Филтриране по Тагове
Това намерява всички видеа с таговете ‘yoga’ и ‘начало’.
GET /api/client/v1/videos?tags=yoga,beginner
Сортиране по Заглавие (По-Растягащо)
Това списва всички видеа, сортирани алфавитно по заглавието.
GET /api/client/v1/videos?sort=title
Сортиране по Дата (По-Новото)
Това списва всички видеа с най-новите първо. Това е default поведение и е еквивалентно на липсата на параметъра sort
.
GET /api/client/v1/videos?sort=-created_at
Пълен Отговор: GET /videos
Това е пълен, непокътнат пример за пагинирания отговор.
{
"data": [
{
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Advanced API Design in Laravel",
"description": "Глубок поглед в изграждането на силни API.",
"duration_in_seconds": 3620,
"thumbnail_url": "https://your-cdn.com/path/to/thumb1.jpg",
"created_at": "2024-08-10T12:00:00Z",
"metadata": {
"difficulty": "advanced",
"presenter": "Jane Doe"
}
},
{
"id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f",
"title": "Въведение в Йога",
"description": "Ръководство за начинаещи по основни йоговски позиции.",
"duration_in_seconds": 1800,
"thumbnail_url": "https://your-cdn.com/path/to/thumb2.jpg",
"created_at": "2024-08-09T10:00:00Z",
"metadata": {
"difficulty": "beginner",
"presenter": "John Smith"
}
}
],
"links": {
"first": "https://your-app.com/api/client/v1/videos?page=1",
"last": "https://your-app.com/api/client/v1/videos?page=5",
"prev": null,
"next": "https://your-app.com/api/client/v1/videos?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://your-app.com/api/client/v1/videos?page=1",
"label": "1",
"active": true
},
{
"url": "https://your-app.com/api/client/v1/videos?page=2",
"label": "2",
"active": false
},
{
"url": "https://your-app.com/api/client/v1/videos?page=3",
"label": "3",
"active": false
},
{
"url": "https://your-app.com/api/client/v1/videos?page=4",
"label": "4",
"active": false
},
{
"url": "https://your-app.com/api/client/v1/videos?page=5",
"label": "5",
"active": false
},
{
"url": "https://your-app.com/api/client/v1/videos?page=2",
"label": "Next »",
"active": true
}
],
"path": "https://your-app.com/api/client/v1/videos",
"per_page": 2,
"to": 2,
"total": 10
}
}
Получаване на Единично Видео
Получава пълен, детайлно данни за едно видео, подходящо за играч. Отговорът е един Обект Video.
GET /videos/{videoId}
Патентни Параметри
Име | Тип | Описание |
---|---|---|
videoId | uuid | Трябва да бъде. Уникалния идентификатор на видеото. |
Примерен Запит
GET /api/client/v1/videos/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Пълен Отговор: GET /videos/{videoId}
{
"data": {
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Advanced API Design in Laravel",
"description": "Глубок поглед в изграждането на силни API.",
"duration_in_seconds": 3620,
"created_at": "2024-08-10T12:00:00Z",
"manifest": {
"hls_url": "https://your-cdn.com/path/to/master.m3u8",
"dash_url": "https://your-cdn.com/path/to/manifest.mpd"
},
"captions": [
{
"label": "English",
"language": "en",
"is_default": true,
"url": "https://your-cdn.com/path/to/en.vtt"
},
{
"label": "Español",
"language": "es",
"is_default": false,
"url": "https://your-cdn.com/path/to/es.vtt"
}
],
"transcript": {
"type": "vtt",
"url": "https://your-cdn.com/path/to/transcript.vtt"
},
"thumbnails": [
{ "url": "https://your-cdn.com/path/to/thumb1.jpg" },
{ "url": "https://your-cdn.com/path/to/thumb2.jpg" }
],
"tags": ["laravel", "api", "php"],
"metadata": {
"difficulty": "advanced",
"presenter": "Jane Doe",
"related_course": "API Mastery",
"language": "en-US"
}
}
}