Skip to Content

Vídea API

Vídea API je primárním koncovým bodem pro získání videa. Podporuje silné filtrování, řazení a značkování.

Seznam videí

Získává stránkovatelný seznam videí. Tento koncový bod je velmi flexibilní a přijímá několik parametrů dotazu k zúžení výsledků. Odpověď obsahuje pole VideoSummary objektů.

GET /videos

Parametry dotazu

NázevTypPopis
pathstringVolitelné. Filtruje videa do konkrétní kolekce cesty, například root/movies.
filtersobjectVolitelné. Filtrování podle metadata. Zobrazte příklad filtrování níže pro syntaxi.
tagsstringVolitelné. Seznam oddělených čárkami značek k filtrování (například laravel,api). Najde videa s všemi uvedenými značkami.
sortstringVolitelné. Řadí výsledky. Použijte předponu - pro klesající řazení. Umožněné pole: created_at, title, duration_in_seconds. Výchozí hodnota: -created_at.
per_pageintegerVolitelné. Počet výsledků na stránku. Výchozí hodnota: 15, Maximální hodnota: 100.

Příklad filtrování

Parametr filters je nejvýznamnější funkcí. Syntaxe je filters[field_name][operator]=value.

Filtrování podle kolekce cesty

Toto najde všechna videa uvnitř složky education/php.

GET /api/client/v1/videos?path=root/education/php

Filtrování podle jediného metadata pole (rovnost)

Toto najde všechna videa, kde je genre ‘Action’, bez ohledu na velikost písmen. Používání přímé hodnoty je krátkou zkratkou pro operátor eq (rovnost).

GET /api/client/v1/videos?filters[genre]=Action

Filtrování podle cesty a metadata

Toto najde všechna videa ‘začátečníka’ specificky v kolekci fitness/yoga.

GET /api/client/v1/videos?path=root/fitness/yoga&filters[difficulty]=beginner

Filtrování podle “větší než” (gt)

Toto najde všechna videa delší než 10 minut (600 sekund).

GET /api/client/v1/videos?filters[duration_in_seconds][gt]=600

Filtrování podle “menší nebo rovný” (lte)

Toto najde všechna videa s hodnocením 3 nebo méně.

GET /api/client/v1/videos?filters[rating][lte]=3

Filtrování podle “v seznamu” (in)

Toto najde všechna videa, kde je obtížnost buď ‘začátečník’ nebo ‘základní’. Funkční pro jak single-select tak multi-select pole.

GET /api/client/v1/videos?filters[difficulty][in]=beginner,intermediate

Filtrování podle “ne rovnost” (neq)

Toto najde všechna videa, kde je prezentátor ne ‘Jane Doe’.

GET /api/client/v1/videos?filters[presenter][neq]=Jane Doe

Příklad řazení a značkování

Filtrování podle značek

Toto najde všechna videa označená oběma ‘yoga’ a ‘začátečník’.

GET /api/client/v1/videos?tags=yoga,beginner

Řazení podle názvu (vzhůru)

Toto seznamuje všechna videa řazena abecedně podle názvu.

GET /api/client/v1/videos?sort=title

Řazení podle data (sestupně)

Toto seznamuje všechna videa s nejnovějšími prvním. Toto je výchozí chování a ekvivalentem bez poskytnutí parametru sort.

GET /api/client/v1/videos?sort=-created_at

Plná odpověď: GET /videos

Toto je kompletní, neupravený příklad stránkovatelné odpovědi.

Odpověď: 200 OK
{ "data": [ { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Pokročilé API Design v Laravelu", "description": "Hluboký pohled do budování robustních API.", "duration_in_seconds": 3620, "thumbnail_url": "https://vaše-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": "Úvod do jógy", "description": "Základní průvodce základními pozicemi jógy.", "duration_in_seconds": 1800, "thumbnail_url": "https://vaše-cdn.com/path/to/thumb2.jpg", "created_at": "2024-08-09T10:00:00Z", "metadata": { "difficulty": "beginner", "presenter": "John Smith" } } ], "links": { "first": "https://vaše-aplikace.com/api/client/v1/videos?page=1", "last": "https://vaše-aplikace.com/api/client/v1/videos?page=5", "prev": null, "next": "https://vaše-aplikace.com/api/client/v1/videos?page=2" }, "meta": { "current_page": 1, "from": 1, "last_page": 5, "links": [ { "url": null, "label": "« Předchozí", "active": false }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=1", "label": "1", "active": true }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=2", "label": "2", "active": false }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=3", "label": "3", "active": false }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=4", "label": "4", "active": false }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=5", "label": "5", "active": false }, { "url": "https://vaše-aplikace.com/api/client/v1/videos?page=2", "label": "Next »", "active": true } ], "path": "https://vaše-aplikace.com/api/client/v1/videos", "per_page": 2, "to": 2, "total": 10 } }

Získání jediného videa

Získává plný, podrobný datový model pro jednotlivé video, vhodný pro přehrávač. Odpověď je jeden Video objekt.

GET /videos/{videoId}

Parametry cesty

NázevTypPopis
videoIduuidPovinný. Unikátní identifikátor videa.

Příklad požadavku

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

Plná odpověď: GET /videos/{videoId}

Odpověď: 200 OK
{ "data": { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Pokročilé API Design v Laravelu", "description": "Hluboký pohled do budování robustních API.", "duration_in_seconds": 3620, "created_at": "2024-08-10T12:00:00Z", "manifest": { "hls_url": "https://vaše-cdn.com/path/to/master.m3u8", "dash_url": "https://vaše-cdn.com/path/to/manifest.mpd" }, "captions": [ { "label": "Angličtina", "language": "en", "is_default": true, "url": "https://vaše-cdn.com/path/to/en.vtt" }, { "label": "Španělština", "language": "es", "is_default": false, "url": "https://vaše-cdn.com/path/to/es.vtt" } ], "transcript": { "type": "vtt", "url": "https://vaše-cdn.com/path/to/transcript.vtt" }, "thumbnails": [ { "url": "https://vaše-cdn.com/path/to/thumb1.jpg" }, { "url": "https://vaše-cdn.com/path/to/thumb2.jpg" } ], "tags": ["laravel", "api", "php"], "metadata": { "difficulty": "advanced", "presenter": "Jane Doe", "related_course": "API Mastery", "language": "en-US" } } }