videoer API
Videoer API er den primære slutpunkt for at hente videoindhold. Den understøtter kraftfulde filter, sortering og tagging-funktioner.
Liste videoer
Henter en pagineret liste over videoer. Dette endpoint er meget fleksibelt og accepterer flere spørgsmål til at finjustere resultaterne. Svar indeholder et array af VideoSummary-objekter.
GET /videos
Spørgsmålsparametre
Navn | Type | Beskrivelse |
---|---|---|
path | string | Valgfri. Filtre videoer til en bestemt samlingsti, f.eks. root/movies . |
filters | object | Valgfri. Filter efter metadata. Se Filtereksempler nedenfor for syntax. |
tags | string | Valgfri. En komma-separeret liste af tags til at filter efter (f.eks. laravel,api ). Finder videoer med ALLE angivne tags. |
sort | string | Valgfri. Sorterer resultaterne. Brug en - foran for nedadgående orden. Tilladte felter: created_at , title , duration_in_seconds . Standard: -created_at . |
per_page | integer | Valgfri. Antal resultater pr side. Standard: 15 , Max: 100 . |
Filtereksempler
Det filters
-parameter er den mest kraftfulde funktion. Syntaxen er filters[field_name][operator]=value
.
Filtre efter samlingsti
Dette finder alle videoer indenfor education/php
mappe.
GET /api/client/v1/videos?path=root/education/php
Filtre efter en enkelt metadata-felt (Liges)
Dette finder alle videoer hvor genre
er ‘Action’, case-insensitivt. Brug af direkte værdi er et shortcut for operatoren eq
.
GET /api/client/v1/videos?filters[genre]=Action
Filtre efter sti og metadata
Dette finder alle ‘begynder’ videoer specifikt indenfor ‘fitness/yoga’-samlingen.
GET /api/client/v1/videos?path=root/fitness/yoga&filters[difficulty]=beginner
Filtre efter “Større end” (gt
)
Dette finder alle videoer længere end 10 minutter (600 sekunder).
GET /api/client/v1/videos?filters[duration_in_seconds][gt]=600
Filtre efter “Mindre end eller ligeligt med” (lte
)
Dette finder alle videoer med en rating på 3 eller mindre.
GET /api/client/v1/videos?filters[rating][lte]=3
Filtre efter “I en liste” (in
)
Dette finder alle videoer hvor sværhedsgraden er enten ‘begynder’ eller ‘intermediat’. Det fungerer for både single-select og multi-select felter.
GET /api/client/v1/videos?filters[difficulty][in]=beginner,intermediate
Filtre efter “Ikke ligeligt med” (neq
)
Dette finder alle videoer hvor præsentatoren ikke er ‘Jane Doe’.
GET /api/client/v1/videos?filters[presenter][neq]=Jane Doe
Eksempler på sortering og tagging
Filtre efter tags
Dette finder alle videoer med begge ‘yoga’ og ‘begynder’-tags.
GET /api/client/v1/videos?tags=yoga,beginner
Sorter efter titel (Stigende)
Dette lister alle videoer sorteret alfabetisk efter titel.
GET /api/client/v1/videos?sort=title
Sorter efter dato (Nedadgående)
Dette lister alle videoer med de nyeste først. Dette er standardadfærd og er ekvivalent til ikke at tilføje et sort
-parameter.
GET /api/client/v1/videos?sort=-created_at
Fuldstændig svar: GET /videos
Dette er en fuldstændig, uklippet eksempel på en pagineret respons.
{
"data": [
{
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Avanceret API Design i Laravel",
"beskrivelse": "En dybdegående undersøgelse af at bygge robuste APIs.",
"duration_in_seconds": 3620,
"thumbnail_url": "https://din-cdn.com/sti/till/thumb1.jpg",
"created_at": "2024-08-10T12:00:00Z",
"metadata": {
"sværhedsgrad": "avanceret",
"præsentator": "Jane Doe"
}
},
{
"id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f",
"title": "Indledning til Yoga",
"beskrivelse": "En begynderguide til grundlæggende yoga-pose.",
"duration_in_seconds": 1800,
"thumbnail_url": "https://din-cdn.com/sti/till/thumb2.jpg",
"created_at": "2024-08-09T10:00:00Z",
"metadata": {
"sværhedsgrad": "begynder",
"præsentator": "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",
"aktiv": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=1",
"label": "1",
"aktiv": true
},
{
"url": "https://din-app.com/api/client/v1/videos?page=2",
"label": "2",
"aktiv": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=3",
"label": "3",
"aktiv": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=4",
"label": "4",
"aktiv": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=5",
"label": "5",
"aktiv": false
},
{
"url": "https://din-app.com/api/client/v1/videos?page=2",
"label": "Næste »",
"aktiv": true
}
],
"sti": "https://din-app.com/api/client/v1/videos",
"per_page": 2,
"to": 2,
"total": 10
}
}
Hent en enkelt video
Henter fuldstændigt, detaljeret data for en enkelt video, egnet til spilleren. Svar er et enkelt Video-objekt.
GET /videos/{videoId}
Sti-parametre
Navn | Type | Beskrivelse |
---|---|---|
videoId | uuid | Påkrævet. Den unikke identifier for videoen. |
Eksempel på forespørgsel
GET /api/client/v1/videos/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Fuldstændig svar: GET /videos/{videoId}
{
"data": {
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Avanceret API Design i Laravel",
"beskrivelse": "En dybdegående undersøgelse af at bygge robuste APIs.",
"duration_in_seconds": 3620,
"created_at": "2024-08-10T12:00:00Z",
"manifest": {
"hls_url": "https://din-cdn.com/sti/till/master.m3u8",
"dash_url": "https://din-cdn.com/sti/till/manifest.mpd"
},
"captions": [
{
"label": "Engelsk",
"sprog": "en",
"er_standard": true,
"url": "https://din-cdn.com/sti/till/en.vtt"
},
{
"label": "Spansk",
"sprog": "es",
"er_standard": false,
"url": "https://din-cdn.com/sti/till/es.vtt"
}
],
"transcript": {
"type": "vtt",
"url": "https://din-cdn.com/sti/till/transcript.vtt"
},
"thumbnails": [
{ "url": "https://din-cdn.com/sti/till/thumb1.jpg" },
{ "url": "https://din-cdn.com/sti/till/thumb2.jpg" }
],
"tags": ["laravel", "api", "php"],
"metadata": {
"sværhedsgrad": "avanceret",
"præsentator": "Jane Doe",
"relateret_kurs": "API Mastery",
"sprog": "en-US"
}
}
}