Skip to Content

Wideo API

Wideo API jest głównym punktem dostępowym do pobierania treści wideo. Obsługuje potężne filtry, sortowanie i tagi.

Lista Wideo

Pobiera paginowaną listę wideo. Ten punkt końcowy jest bardzo elastyczny i akceptuje kilka parametrów zapytania do dopasowania wyników. Odpowiedź zawiera tablicę obiektów WideoSummary.

GET /wideo

Parametry Zapytania

NazwaTypOpis
ścieżkastringOpcjonalnie. Filtrowanie wideo do określonej ścieżki kolekcji, np. root/movies.
filtrowanieobiektOpcjonalnie. Filtrowanie przez metadane. Zobacz przykłady filtrów poniżej.
tagistringOpcjonalnie. Lista tagów oddzielonych przecinkami do filtrowania (np. laravel,api). Znajduje wideo z wszystkimi określonymi tagami.
sortowaniestringOpcjonalnie. Sortuje wyniki. Użyj prefiksu - dla sortowania malejącego. Dopuszczalne pola: created_at, title, duration_in_seconds. Domyślnie: -created_at.
per_pageintegerOpcjonalnie. Liczba wyników na stronę. Domyślnie: 15, Maksimum: 100.

Przykłady filtracji

Parametr filtrowanie jest najpotężniejszym elementem. Składnia to filtrowanie[field_name][operator]=wartość.

Filtrowanie przez Ścieżkę Kolekcji

To znajduje wszystkie wideo wewnątrz folderu education/php.

GET /api/client/v1/wideo?ścieżka=root/edukacja/php

Filtrowanie przez Jedno Pola Metadanych (Równość)

To znajduje wszystkie wideo, gdzie gatunek to ‘Akcja’, niezależnie od wielkości liter. Używanie bezpośredniej wartości jest skrótem dla operatora eq (równość).

GET /api/client/v1/wideo?filtrowanie[gatunek]=Akcja

Filtrowanie przez Ścieżkę i Metadane

To znajduje wszystkie ‘początkujące’ wideo, specyficznie w kolekcji fitness/yoga.

GET /api/client/v1/wideo?ścieżka=root/fitness/yoga&filtrowanie[trudność]=początkujący

Filtrowanie przez “Większe Niż” (gt)

To znajduje wszystkie wideo dłuższe niż 10 minut (600 sekund).

GET /api/client/v1/wideo?filtrowanie[czas_trwania_sekundy][gt]=600

Filtrowanie przez “Mniejsze lub Równie” (lte)

To znajduje wszystkie wideo z oceną 3 lub mniejszą.

GET /api/client/v1/wideo?filtrowanie[ocena][lte]=3

Filtrowanie przez “W Liście” (in)

To znajduje wszystkie wideo, gdzie trudność jest albo ‘początkująca’ lub ‘średnia’. Działa dla obu poli wyboru wielokrotnego i pojedynczego.

GET /api/client/v1/wideo?filtrowanie[trudność][in]=początkujący,średni

Filtrowanie przez “Nie Równa” (neq)

To znajduje wszystkie wideo, gdzie prezentator nie jest ‘Jane Doe’.

GET /api/client/v1/wideo?filtrowanie[prezentator][neq]=Jane Doe

Przykłady Sortowania i Tagowania

Filtrowanie przez Tagi

To znajduje wszystkie wideo oznaczone oboma tagami ‘yoga’ i ‘początkujący’.

GET /api/client/v1/wideo?tagi=yoga,początkujący

Sortowanie przez Tytuł (Rosnąco)

To listuje wszystkie wideo posortowane alfabetycznie według tytułu.

GET /api/client/v1/wideo?sortowanie=title

Sortowanie przez Datę (Malejąco)

To listuje wszystkie wideo z najnowszymi pierwszymi. Jest to zachowanie domyślne i jest ekwiwalentem nieprzekazywania parametru sortowanie.

GET /api/client/v1/wideo?sortowanie=-created_at

Pełna Odpowiedź: GET /wideo

To jest kompletny, nieprzetoczony przykład odpowiedzi paginowanej.

Odpowiedź: 200 OK
{ "data": [ { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Zaawansowane API Design w Laravel", "description": "Głęboki wgląd w budowanie wytrzymałych API.", "czas_trwania_sekundy": 3620, "url_miniaturki": "https://twoja-cdn.com/scieżka/do/thumb1.jpg", "created_at": "2024-08-10T12:00:00Z", "metadata": { "trudność": "zaawansowana", "prezentator": "Jane Doe" } }, { "id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f", "title": "Wprowadzenie do Jogii", "description": "Podręcznik dla początkujących w podstawowych pozach jogi.", "czas_trwania_sekundy": 1800, "url_miniaturki": "https://twoja-cdn.com/scieżka/do/thumb2.jpg", "created_at": "2024-08-09T10:00:00Z", "metadata": { "trudność": "początkująca", "prezentator": "John Smith" } } ], "linki": { "pierwszy": "https://twoja-aplikacja.com/api/client/v1/wideo?page=1", "ostatni": "https://twoja-aplikacja.com/api/client/v1/wideo?page=5", "poprzedni": null, "następny": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2" }, "meta": { "aktualna_strona": 1, "od": 1, "ostatnia_strona": 5, "linki": [ { "url": null, "etykieta": "« Poprzedni", "aktywny": false }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=1", "etykieta": "1", "aktywny": true }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2", "etykieta": "2", "aktywny": false }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=3", "etykieta": "3", "aktywny": false }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=4", "etykieta": "4", "aktywny": false }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=5", "etykieta": "5", "aktywny": false }, { "url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2", "etykieta": "Następny »", "aktywny": true } ], "ścieżka": "https://twoja-aplikacja.com/api/client/v1/wideo", "na_stronę": 2, "do": 2, "ogółem": 10 } }

Pobierz Jedno Wideo

Pobiera pełne, szczegółowe dane dla jednego wideo, odpowiednie do odtwarzania. Odpowiedź to pojedynczy Obiekt Wideo.

GET /wideo/{idWideo}

Parametry Szczególne

NazwaTypOpis
idWideouuidObowiązkowe. Unikalny identyfikator wideo.

Przykład Zapytania

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

Pełna Odpowiedź: GET /wideo/{idWideo}

Odpowiedź: 200 OK
{ "data": { "id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a", "title": "Zaawansowane API Design w Laravel", "description": "Głęboki wgląd w budowanie wytrzymałych API.", "czas_trwania_sekundy": 3620, "created_at": "2024-08-10T12:00:00Z", "manifest": { "url_hls": "https://twoja-cdn.com/scieżka/do/master.m3u8", "url_dash": "https://twoja-cdn.com/scieżka/do/manifest.mpd" }, "opis_tytłów": [ { "etykieta": "Angielski", "język": "en", "jest_domyślnym": true, "url": "https://twoja-cdn.com/scieżka/do/en.vtt" }, { "etykieta": "Hiszpański", "język": "es", "jest_domyślnym": false, "url": "https://twoja-cdn.com/scieżka/do/es.vtt" } ], "transkrypcja": { "typ": "vtt", "url": "https://twoja-cdn.com/scieżka/do/transkrypcja.vtt" }, "miniaturki": [ { "url": "https://twoja-cdn.com/scieżka/do/thumb1.jpg" }, { "url": "https://twoja-cdn.com/scieżka/do/thumb2.jpg" } ], "tagi": ["laravel", "api", "php"], "metadata": { "trudność": "zaawansowana", "prezentator": "Jane Doe", "związany_kurs": "API Mastery", "język": "en-US" } } }