Skip to Content

Videor API

Videor API är den primära slutpunkten för att hämta videoinnehåll. Den stöder kraftfull filtrering, sorterings- och märkningstillgängligheter.

Lista Videor

Hämtar en sidbrytad lista över videor. Denna slutpunkt är mycket flexibel och accepterar flera frågeparametrar för att förfina resultaten. Svar innehåller ett array av VideoSummary-objekt.

GET /videos

Frågeparametrar

NamnTypBeskrivning
pathstringValfritt. Filtrerar videor till en specifik samlingssökväg, t.ex. root/movies.
filtersobjectValfritt. Filtrerar efter metadata. Se Filtreringsexempel nedan för syntax.
tagsstringValfritt. En kommatesterad lista med märken att filtrera efter (t.ex. laravel,api). Hittar videor med ALLA angivna märken.
sortstringValfritt. Sorterar resultaten. Använd ett - prefix för nedåtriktad ordning. Tillåtna fält: created_at, title, duration_in_seconds. Standard: -created_at.
per_pageintegerValfritt. Antal resultat per sida. Standard: 15, Max: 100.

Filtreringsexempel

Den filters-parametern är den mest kraftfulla funktionen. Syntaxen är filters[field_name][operator]=value.

Filtrera efter samlingssökväg

Detta hittar alla videor inuti education/php-mappen.

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

Filtrera efter en enda metadata-fält (Jämför)

Detta hittar alla videor där genre är ‘Action’, case-insensitivt. Användandet av direkt värde är ett kortkommando för operatorn eq (jämför).

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

Filtrera efter sökväg och metadata

Detta hittar alla ‘beginner’-videor specifikt inom fitness/yoga-samlingen.

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

Filtrera efter “Större än” (gt)

Detta hittar alla videor som är längre än 10 minuter (600 sekunder).

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

Filtrera efter “Mindre än eller lika med” (lte)

Detta hittar alla videor med en betyg på 3 eller lägre.

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

Filtrera efter “Finns i listan” (in)

Detta hittar alla videor där svårigheten är antingen ‘beginner’ eller ‘intermediate’. Det fungerar för både enval och flerval.

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

Filtrera efter “Inte lika med” (neq)

Detta hittar alla videor där presentatören inte är ‘Jane Doe’.

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

Sorterings- och märkningsexempel

Filtrera efter märken

Detta hittar alla videor som är märkta med BÅDA ‘yoga’ OCH ‘beginner’.

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

Sortera efter Titel (Stigande)

Detta listar alla videor sorterade alfabetiskt efter titel.

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

Sortera efter Datum (Nedåtriktad)

Detta listar alla videor med de nyaste först. Detta är standardbeteendet och är liktydigt med att inte ange en sort-parameter.

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

Fullt svar: GET /videos

Detta är ett komplett, oavkortat exempel på en sidbrytad respons.

Svar: 200 OK
{ "data": [ { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Avancerad API Design i Laravel", "description": "En djupdykning i att bygga robusta API:er.", "duration_in_seconds": 3620, "thumbnail_url": "https://din-cdn.com/sökväg/till/thumb1.jpg", "created_at": "2024-08-10T12:00:00Z", "metadata": { "svårighetsgrad": "avancerad", "presentatör": "Jane Doe" } }, { "id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f", "title": "Introduktion till Yoga", "description": "En början guide för grundläggande yogaövningar.", "duration_in_seconds": 1800, "thumbnail_url": "https://din-cdn.com/sökväg/till/thumb2.jpg", "created_at": "2024-08-09T10:00:00Z", "metadata": { "svårighetsgrad": "början", "presentatör": "John Smith" } } ], "länkar": { "första": "https://din-app.com/api/client/v1/videos?page=1", "sista": "https://din-app.com/api/client/v1/videos?page=5", "föregående": null, "nästa": "https://din-app.com/api/client/v1/videos?page=2" }, "meta": { "nuvarande_sida": 1, "från": 1, "sista_sida": 5, "länkar": [ { "url": null, "etikett": "« Föregående", "aktiv": false }, { "url": "https://din-app.com/api/client/v1/videos?page=1", "etikett": "1", "aktiv": true }, { "url": "https://din-app.com/api/client/v1/videos?page=2", "etikett": "2", "aktiv": false }, { "url": "https://din-app.com/api/client/v1/videos?page=3", "etikett": "3", "aktiv": false }, { "url": "https://din-app.com/api/client/v1/videos?page=4", "etikett": "4", "aktiv": false }, { "url": "https://din-app.com/api/client/v1/videos?page=5", "etikett": "5", "aktiv": false }, { "url": "https://din-app.com/api/client/v1/videos?page=2", "etikett": "Nästa »", "aktiv": true } ], "sökväg": "https://din-app.com/api/client/v1/videos", "per_sida": 2, "till": 2, "totalt": 10 } }

Hämta en enskild video

Hämtar fullständig, detaljerad data för en enskild video, lämplig för spelare. Svar är ett enda Video-objekt.

GET /videos/{videoId}

Sökvägsparametrar

NamnTypBeskrivning
videoIduuidKrävs. Den unika identifieraren för videon.

Exempelbegäran

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

Fullt svar: GET /videos/{videoId}

Svar: 200 OK
{ "data": { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Avancerad API Design i Laravel", "description": "En djupdykning i att bygga robusta API:er.", "duration_in_seconds": 3620, "created_at": "2024-08-10T12:00:00Z", "manifest": { "hls_url": "https://din-cdn.com/sökväg/till/master.m3u8", "dash_url": "https://din-cdn.com/sökväg/till/manifest.mpd" }, "captions": [ { "etikett": "Engelska", "språk": "en", "är_standard": true, "url": "https://din-cdn.com/sökväg/till/en.vtt" }, { "etikett": "Spanska", "språk": "es", "är_standard": false, "url": "https://din-cdn.com/sökväg/till/es.vtt" } ], "transcript": { "typ": "vtt", "url": "https://din-cdn.com/sökväg/till/transkription.vtt" }, "thumbnails": [ { "url": "https://din-cdn.com/sökväg/till/thumb1.jpg" }, { "url": "https://din-cdn.com/sökväg/till/thumb2.jpg" } ], "märken": ["laravel", "api", "php"], "metadata": { "svårighetsgrad": "avancerad", "presentatör": "Jane Doe", "relaterad_kurs": "API-Mästeri", "språk": "en-US" } } }