Videoklipp API
Videoklipp API er den primære endepunkt for å hente videoinhold. Den støtter kraftfulle filtrering, sortering og tagging-funksjoner.
Liste videoer
Henter en sidestilt liste over videoer. Dette endpointet er meget fleksibelt og aksepterer flere spørsmål til å finjustere resultatene. Responsen inneholder en array av VideoSummary-objekter.
GET /videos
Spørsmålsparametre
Navn | Type | Beskrivelse |
---|---|---|
path | string | Valgfritt. Filtre videoer til en spesifikk samlingsti, f.eks. root/movies . |
filters | object | Valgfritt. Filtre etter metadata. Se Filtreringseksempler nedenfor for syntax. |
tags | string | Valgfritt. En komma-separert liste med tagger til å filtre etter (f.eks. laravel,api ). Finnes videoer med alle oppgitte taggene. |
sort | string | Valgfritt. Sorterer resultatene. Bruk en - prefiks for nedre rekkefølge. Tillatte felt: created_at , title , duration_in_seconds . Standard: -created_at . |
per_page | integer | Valgfritt. Antall resultater per side. Standard: 15 , Maksimum: 100 . |
Filtrerings-eksempler
Parameteret filters
er den mest kraftfulle funksjonen. Syntaxen er filters[field_name][operator]=value
.
Filtre etter samlingsti
Dette finner alle videoer innenfor mappen education/php
.
GET /api/client/v1/videos?path=root/education/php
Filtre etter en enkelt metadata-felt (Liker)
Dette finner alle videoer hvor genre
er ‘Action’, uavhengig av stor- og småbokstaver. Bruk av direkte verdi er et kortvei for operatoren eq
.
GET /api/client/v1/videos?filters[genre]=Action
Filtre etter sti og metadata
Dette finner alle ‘begynner’ videoer spesifikt innenfor samlingen fitness/yoga
.
GET /api/client/v1/videos?path=root/fitness/yoga&filters[difficulty]=beginner
Filtre etter “Større enn” (gt
)
Dette finner alle videoer som er lengre enn 10 minutter (600 sekunder).
GET /api/client/v1/videos?filters[duration_in_seconds][gt]=600
Filtre etter “Mindre enn eller lik” (lte
)
Dette finner alle videoer med en rating på 3 eller mindre.
GET /api/client/v1/videos?filters[rating][lte]=3
Filtre etter “I en liste” (in
)
Dette finner alle videoer hvor vanskelighetsgraden er enten ‘begynner’ eller ‘intermediat’. Det fungerer for både enkelt- og flervalg-felter.
GET /api/client/v1/videos?filters[difficulty][in]=beginner,intermediate
Filtre etter “Ikke lik” (neq
)
Dette finner alle videoer hvor presentatoren ikke er ‘Jane Doe’.
GET /api/client/v1/videos?filters[presenter][neq]=Jane Doe
Eksempler på sortering og tagging
Filtre etter tagger
Dette finner alle videoer med begge ‘yoga’ og ‘begynner’.
GET /api/client/v1/videos?tags=yoga,beginner
Sortere etter tittel (Stigende)
Dette lister alle videoer sortert alfabetisk etter tittel.
GET /api/client/v1/videos?sort=title
Sortere etter dato (Nedre rekkefølge)
Dette lister alle videoer med de nyeste først. Dette er standardoppføringen og er likt å ikke tilby en sort
parameter.
GET /api/client/v1/videos?sort=-created_at
Full respons: GET /videos
Dette er et komplett, uforkortet eksempel på en sidestilt respons.
{
"data": [
{
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Avansert API Design i Laravel",
"description": "En dyptgående innføring i å bygge robuste APIs.",
"duration_in_seconds": 3620,
"thumbnail_url": "https://din-cdn.com/path/to/thumb1.jpg",
"created_at": "2024-08-10T12:00:00Z",
"metadata": {
"difficulty": "avansert",
"presenter": "Jane Doe"
}
},
{
"id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f",
"title": "Innledning til Yoga",
"description": "En begynner's guide til grunnleggende yoga-posisjoner.",
"duration_in_seconds": 1800,
"thumbnail_url": "https://din-cdn.com/path/to/thumb2.jpg",
"created_at": "2024-08-09T10:00:00Z",
"metadata": {
"difficulty": "begynner",
"presenter": "John Smith"
}
}
],
"links": {
"first": "https://din-app.com/api/client/v1/videos?page=1",
"last": "https://din-app.com/api/client/v1/videos?page=5",
"prev": null,
"next": "https://din-app.com/api/client/v1/videos?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"links": [
{
"url": null,
"label": "« Forrige",
"active": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=1",
"label": "1",
"active": true
},
{
"url": "https://din-app.com/api/client/v1/videos?page=2",
"label": "2",
"active": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=3",
"label": "3",
"active": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=4",
"label": "4",
"active": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=5",
"label": "5",
"active": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=2",
"label": "Neste »",
"active": true
}
],
"path": "https://din-app.com/api/client/v1/videos",
"per_page": 2,
"to": 2,
"total": 10
}
}
Hent en enkelt video
Henter fullstendig detaljert data for en enkelt video, egnet for å spille inn. Responsen er et enkelt Video-objekt.
GET /videos/{videoId}
Sti-parametre
Navn | Type | Beskrivelse |
---|---|---|
videoId | uuid | Påkrevd. Unike identifikator for videoen. |
Eksempel på forespørsel
GET /api/client/v1/videos/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Full respons: GET /videos/{videoId}
{
"data": {
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Avansert API Design i Laravel",
"description": "En dyptgående innføring i å bygge robuste APIs.",
"duration_in_seconds": 3620,
"created_at": "2024-08-10T12:00:00Z",
"manifest": {
"hls_url": "https://din-cdn.com/path/to/master.m3u8",
"dash_url": "https://din-cdn.com/path/to/manifest.mpd"
},
"captions": [
{
"label": "Engelsk",
"language": "en",
"is_default": true,
"url": "https://din-cdn.com/path/to/en.vtt"
},
{
"label": "Spansk",
"language": "es",
"is_default": false,
"url": "https://din-cdn.com/path/to/es.vtt"
}
],
"transcript": {
"type": "vtt",
"url": "https://din-cdn.com/path/to/transcript.vtt"
},
"thumbnails": [
{ "url": "https://din-cdn.com/path/to/thumb1.jpg" },
{ "url": "https://din-cdn.com/path/to/thumb2.jpg" }
],
"tags": ["laravel", "api", "php"],
"metadata": {
"difficulty": "avansert",
"presenter": "Jane Doe",
"relatert kurs": "API Mastery",
"språk": "en-US"
}
}
}