# Bibliotekos transkripcijų sąrašas

> Grąžina jūsų bibliotekos transkripcijas: naujausiai pridėtos pirmos, jei nenurodyta kitaip.

Šaltinis: https://diko.app/api-docs/zinynas/list-library-transcripts

Biblioteka · `GET /library/transcripts`

- **Bazinis URL:** https://api.diko.app/api/v1
- **Reikalingas leidimas:** `library:read`
- **Ribų politika:** `read`, `account`
- **Autentifikacija:** `Authorization: Bearer dk_live_...`

Sąrašo elementuose `summary.text` yra `null` ir nėra `chapters`; juos gausite paėmę vieną transkripciją.

## Parametrai

| Pavadinimas | Vieta | Tipas | Privalomas | Numatytoji reikšmė | Apribojimai | Aprašas |
|---|---|---|---|---|---|---|
| `source_type` | query | `string` | ne | – | – | Tik šio šaltinio transkripcijos. Galimos reikšmės: `youtube`, `upload`. |
| `archived` | query | `string` | ne | `false` | – | Grąžinti aktyvius (`false`), užarchyvuotus (`true`) arba visus (`all`) elementus. Galimos reikšmės: `false`, `true`, `all`. |
| `added_after` | query | `string` | ne | – | ≤ 64 simbolių | Tik po šio momento pridėti elementai (išskirtinė riba). RFC 3339 data arba data ir laikas. Lyginama milisekundėmis, kaip ir atsakymų laiko žymos, todėl atsakyme gautą laiko žymą galima perduoti atgal ir to paties elemento negausite dar kartą. |
| `added_before` | query | `string` | ne | – | ≤ 64 simbolių | Tik prieš šį momentą pridėti elementai (išskirtinė riba). RFC 3339 data arba data ir laikas. Lyginama milisekundėmis, kaip ir atsakymų laiko žymos, todėl atsakyme gautą laiko žymą galima perduoti atgal ir to paties elemento negausite dar kartą. |
| `q` | query | `string` | ne | – | ≤ 200 simbolių | Paieška pavadinime. |
| `order` | query | `string` | ne | `desc` | – | Rūšiavimo kryptis. Galimos reikšmės: `desc`, `asc`. |
| `limit` | query | `integer` | ne | `20` | 1–100; format: int32 | Puslapio dydis nuo 1 iki 100. Numatytasis 20. Remkitės `has_more`, o ne puslapio dydžiu. |
| `cursor` | query | `string` | ne | – | ≤ 1024 simbolių | Neskaidrus žymeklis iš ankstesnio puslapio `next_cursor`. Žymekliai pririšti prie naudotojo, maršruto, rūšiavimo ir filtrų. |

## Atsakymas

### 200

Bibliotekos transkripcijų puslapis, rūšiuojamas pagal `added_at`.

- `RateLimit`: Labiausiai ribojanti taikyta politika: `"pavadinimas";r=<liko užklausų>;t=<sekundės>`. `t` – sekundės iki kitos leidžiamos užklausos (0, kai talpa pilna). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `RateLimit-Policy`: Užklausai taikytos ribų politikos, po vieną elementą `"pavadinimas";q=<pradinė talpa>;w=<sekundės>` kiekvienai, pavyzdžiui, `"read";q=10;w=2, "account";q=20;w=2`: `q` – pradinė talpa, `w` – sekundės, per kurias tuščia talpa vėl prisipildo. Siunčiama su kiekvienu autentifikuotu atsakymu; nesiunčiama, kai užklausai ribotuvas netaikytas, pavyzdžiui, kai ji atmesta dar nepatikrinus rakto.
- `Request-Id`: Šios užklausos ID (priešdėlis `req_`), toks pat kaip `request_id` klaidos atsakyme. Siunčiamas ir kaip `X-Request-ID`. Kreipdamiesi pagalbos nurodykite jį.
- `X-Client-Request-Id`: Jūsų siųsta užklausos antraštė `X-Client-Request-Id`, grąžinta atgal. Grąžinama tik tada, kai jūsų reikšmė turi 1–128 simbolius iš A-Z a-z 0-9 . _ : -.
- `X-RateLimit-Limit`: Labiausiai ribojančios politikos pradinė talpa (`q` antraštėje `RateLimit-Policy`). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `X-RateLimit-Remaining`: Labiausiai ribojančioje politikoje likusios užklausos (`r` antraštėje `RateLimit`). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `X-RateLimit-Reset`: Sekundės iki kitos leidžiamos užklausos labiausiai ribojančioje politikoje (`t` antraštėje `RateLimit`; 0, kai talpa pilna). Tai sekundžių skaičius, o ne laiko žyma. Nesiunčiama, kai užklausai ribotuvas netaikytas.

Turinio tipas: `application/json`

- `object` (string, privalomas): Visada `list`.
- `data` (array<object>, privalomas): Šio puslapio elementai.
  - `id` (string, privalomas, 6–64 simbolių, pattern: ^trn_[A-Za-z0-9_-]+$): Viešas ID (priešdėlis `trn_`).
  - `object` (string, privalomas): Visada `library_transcript`.
  - `title` (string, privalomas): Pavadinimas.
  - `source_type` (string, privalomas): Iš kur transkripcija. Galimos reikšmės: `youtube`, `upload`.
  - `youtube_video_id` (string | null, privalomas): YouTube vaizdo įrašo ID. `null` įkeltiems failams.
  - `url` (string | null, privalomas, format: uri): Šaltinio URL. `null` įkeltiems failams.
  - `channel` (string | null, privalomas): Kanalo pavadinimas, jei žinomas.
  - `language` (string | null, privalomas): Kalbos kodas, pavyzdžiui, `lt`.
  - `duration_ms` (integer | null, privalomas, 0–9007199254740991, format: int64): Trukmė milisekundėmis.
  - `transcription_method` (string | null, privalomas): Kaip gautas tekstas: iš subtitrų ar atpažinus kalbą. Tiekėjai nenurodomi. Galimos reikšmės: `captions`, `speech_recognition`.
  - `summary` (object, privalomas): Santraukos būsena ir tekstas.
    - `status` (string, privalomas): Santraukos būsena. Galimos reikšmės: `pending`, `ready`, `failed`, `unavailable`.
    - `text` (string | null, privalomas): Santraukos tekstas. `null` sąrašo elementuose ir kol santrauka neparuošta.
  - `chapters` (array<object>, neprivalomas): Skyriai. Tik vienos transkripcijos atsakyme.
    - `title` (string, privalomas): Skyriaus pavadinimas.
    - `start_ms` (integer, privalomas, 0–9007199254740991, format: int64): Skyriaus pradžia milisekundėmis.
  - `categories` (array<string>, privalomas): Diko priskirtos kategorijos.
  - `added_at` (string, privalomas, ≤ 24 simbolių, format: date-time): Kada transkripcija pridėta į jūsų biblioteką.
  - `archived` (boolean, privalomas): Ar elementas užarchyvuotas.
  - `segment_count` (integer, privalomas, 0–2147483647, format: int32): Transkripto segmentų skaičius.
  - `revision` (string, privalomas): Neskaidrus žetonas, kuris pasikeičia keičiantis bet kuriam segmentui.
  - `web_url` (string, privalomas, format: uri): Nuoroda Diko programėlėje.
- `has_more` (boolean, privalomas): Ar yra daugiau elementų. Puslapiuokite, kol reikšmė yra `true`.
- `next_cursor` (string | null, privalomas, ≤ 1024 simbolių): Kito puslapio žymeklis arba `null`, kai `has_more` yra `false`.

```json
{
  "object": "list",
  "data": [
    {
      "id": "trn_ZFF3NHc5V2dYY1E",
      "object": "library_transcript",
      "title": "Kaip veikia transkribavimas",
      "source_type": "youtube",
      "youtube_video_id": "dQw4w9WgXcQ",
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "channel": "Diko",
      "language": "lt",
      "duration_ms": 212000,
      "transcription_method": "captions",
      "summary": {
        "status": "ready",
        "text": null
      },
      "categories": [
        "Technologijos"
      ],
      "added_at": "2026-10-11T09:30:00.000Z",
      "archived": false,
      "segment_count": 120,
      "revision": "r_6f6f4bb9762915b561878fd1e1fa7f56",
      "web_url": "https://studio.diko.app/library/dQw4w9WgXcQ"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```

## Pavyzdžiai

**cURL**

```bash
curl "https://api.diko.app/api/v1/library/transcripts?limit=20" \
  -H "Authorization: Bearer $DIKO_API_KEY"
```

**Python**

```python
import os

import requests

response = requests.get(
    "https://api.diko.app/api/v1/library/transcripts",
    headers={"Authorization": f"Bearer {os.environ['DIKO_API_KEY']}"},
    params={"limit": 20},
    timeout=30,
)
response.raise_for_status()
print(response.json())
```

**TypeScript**

```typescript
const response = await fetch("https://api.diko.app/api/v1/library/transcripts?limit=20", {
  headers: {
    Authorization: `Bearer ${process.env.DIKO_API_KEY}`,
  },
})
if (!response.ok) throw new Error(`${response.status} ${await response.text()}`)
console.log(await response.json())
```

## Klaidos

Šis endpointas gali grąžinti šias klaidas. Visų kodų aprašai yra klaidų kataloge.

| HTTP | Kodas | Reikšmė | Kartoti? |
|---|---|---|---|
| 400 | [`invalid_parameter`](https://diko.app/api-docs/klaidos.md#invalid_parameter) | Kelio, užklausos ar turinio parametro reikšmė netinkama, privalomo lauko trūksta arba laukas nežinomas (nežinomi laukai atmetami). Lauke `error.param` nurodytas parametras. | ne |
| 400 | [`invalid_cursor`](https://diko.app/api-docs/klaidos.md#invalid_cursor) | `cursor` sugadintas arba išduotas kitam naudotojui, maršrutui, rūšiavimui ar filtrams. | ne |
| 401 | [`missing_api_key`](https://diko.app/api-docs/klaidos.md#missing_api_key) | Užklausoje nėra antraštės `Authorization`. | ne |
| 401 | [`invalid_api_key`](https://diko.app/api-docs/klaidos.md#invalid_api_key) | Antraštė netinkama (ne `Bearer` schema, tuščias raktas arba kelios antraštės `Authorization`) arba raktas nežinomas ar blogo formato (neatitinka struktūros ar kontrolinės sumos). Atsakymas visais šiais atvejais vienodas. | ne |
| 401 | [`api_key_expired`](https://diko.app/api-docs/klaidos.md#api_key_expired) | Rakto galiojimas pasibaigė. | ne |
| 401 | [`api_key_revoked`](https://diko.app/api-docs/klaidos.md#api_key_revoked) | Raktas atšauktas: rankiniu būdu, pasibaigus rotacijos persidengimui, dėl nutekėjimo arba išjungus paskyrą. | ne |
| 401 | [`api_key_disabled`](https://diko.app/api-docs/klaidos.md#api_key_disabled) | Raktas laikinai išjungtas. | ne |
| 402 | [`subscription_required`](https://diko.app/api-docs/klaidos.md#subscription_required) | Paskyra neturi aktyvios apmokėtos prieigos. | ne |
| 403 | [`ip_not_allowed`](https://diko.app/api-docs/klaidos.md#ip_not_allowed) | Raktas turi IP apribojimą, o užklausos IP nėra sąraše arba jo nepavyksta nustatyti patikimai. | ne |
| 403 | [`account_disabled`](https://diko.app/api-docs/klaidos.md#account_disabled) | Paskyra išjungta. | ne |
| 403 | [`email_not_verified`](https://diko.app/api-docs/klaidos.md#email_not_verified) | Paskyros el. paštas nepatvirtintas. | ne |
| 403 | [`api_access_suspended`](https://diko.app/api-docs/klaidos.md#api_access_suspended) | Diko administratorius sustabdė šios paskyros API prieigą. | ne |
| 403 | [`plan_required`](https://diko.app/api-docs/klaidos.md#plan_required) | Planas neapima API. `error.details.required_plans` yra `verslas`. | ne |
| 403 | [`insufficient_scope`](https://diko.app/api-docs/klaidos.md#insufficient_scope) | Raktas neturi endpointui reikalingo leidimo. `error.details` turi `required_scopes` ir `granted_scopes`. | ne |
| 429 | [`rate_limit_exceeded`](https://diko.app/api-docs/klaidos.md#rate_limit_exceeded) | Viršyta ribų politika. `error.details.policy` nurodo, kuri. | taip, po Retry-After |
| 500 | [`internal_error`](https://diko.app/api-docs/klaidos.md#internal_error) | Vidinė serverio klaida. | sąlygiškai |
| 503 | [`service_unavailable`](https://diko.app/api-docs/klaidos.md#service_unavailable) | Paslauga laikinai užimta, pavyzdžiui, dėl duomenų bazės apkrovos. | taip, po Retry-After |
