Skip to Content

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

NavnTypeBeskrivelse
pathstringValgfritt. Filtre videoer til en spesifikk samlingsti, f.eks. root/movies.
filtersobjectValgfritt. Filtre etter metadata. Se Filtreringseksempler nedenfor for syntax.
tagsstringValgfritt. En komma-separert liste med tagger til å filtre etter (f.eks. laravel,api). Finnes videoer med alle oppgitte taggene.
sortstringValgfritt. Sorterer resultatene. Bruk en - prefiks for nedre rekkefølge. Tillatte felt: created_at, title, duration_in_seconds. Standard: -created_at.
per_pageintegerValgfritt. 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.

Respons: 200 OK
{ "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

NavnTypeBeskrivelse
videoIduuidPåkrevd. Unike identifikator for videoen.

Eksempel på forespørsel

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

Full respons: GET /videos/{videoId}

Respons: 200 OK
{ "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" } } }