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ázev | Typ | Popis |
---|---|---|
path | string | Volitelné. Filtruje videa do konkrétní kolekce cesty, například root/movies . |
filters | object | Volitelné. Filtrování podle metadata. Zobrazte příklad filtrování níže pro syntaxi. |
tags | string | Volitelné. Seznam oddělených čárkami značek k filtrování (například laravel,api ). Najde videa s všemi uvedenými značkami. |
sort | string | Volitelné. Ř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_page | integer | Volitelné. 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.
{
"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ázev | Typ | Popis |
---|---|---|
videoId | uuid | Povinný. Unikátní identifikátor videa. |
Příklad požadavku
GET /api/client/v1/videos/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Plná odpověď: GET /videos/{videoId}
{
"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"
}
}
}