Skip to Content

Видео API

Видео API е основният endpoint за получаване на видео съдържание. Поддръжка за мощно филтриране, сортиране и маркиране.

Списък с Видео

Получава пагинирания списък с видеа. Този endpoint е много пластичен и приема няколко параметра за запитване, за да се подобри резултатите. Отговорът съдържа масив от Обекти VideoSummary.

GET /videos

Параметри на Запитването

ИмеТипОписание
pathstringДопълнителен. Филтрира видеата до конкретен път на събирание, например root/movies.
filtersobjectДопълнителен. Филтрира по метаданни. Вижте Примери за филтриране долу за синтаксиса.
tagsstringДопълнителен. Списък от тагове, разделени с запетая, за да се филтрират (например, laravel,api). Намерява видеата със всички посочени тагове.
sortstringДопълнителен. Сортира резултатите. Използвайте префикс - за по-старо. Допустими полета: created_at, title, duration_in_seconds. Default: -created_at.
per_pageintegerДопълнителен. Брой резултати на страница. 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

Това е пълен, непокътнат пример за пагинирания отговор.

Отговор: 200 OK
{ "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}

Патентни Параметри

ИмеТипОписание
videoIduuidТрябва да бъде. Уникалния идентификатор на видеото.

Примерен Запит

GET /api/client/v1/videos/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a

Пълен Отговор: GET /videos/{videoId}

Отговор: 200 OK
{ "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" } } }