# Gauti bibliotekos transkripciją

> Grąžina vieną bibliotekos transkripciją su santrauka ir skyriais.

Šaltinis: https://diko.app/api-docs/zinynas/get-library-transcript

Biblioteka · `GET /library/transcripts/{transcript_id}`

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

## Parametrai

| Pavadinimas | Vieta | Tipas | Privalomas | Numatytoji reikšmė | Apribojimai | Aprašas |
|---|---|---|---|---|---|---|
| `transcript_id` | path | `string` | taip | – | 6–64 simbolių; pattern: ^trn_[A-Za-z0-9_-]+$ | Viešas bibliotekos transkripcijos ID (priešdėlis `trn_`). |

## Atsakymas

### 200

Bibliotekos transkripcija.

- `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`

- `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.

```json
{
  "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": "Trumpas pristatymas, kaip vaizdo įrašas paverčiamas tekstu."
  },
  "chapters": [
    {
      "title": "Įžanga",
      "start_ms": 0
    }
  ],
  "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"
}
```

## Pavyzdžiai

**cURL**

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

**Python**

```python
import os

import requests

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

**TypeScript**

```typescript
const response = await fetch("https://api.diko.app/api/v1/library/transcripts/trn_ZFF3NHc5V2dYY1E", {
  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? |
|---|---|---|---|
| 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 |
| 404 | [`not_found`](https://diko.app/api-docs/klaidos.md#not_found) | Resurso nėra, jis nepriklauso jūsų paskyrai arba ID užkoduotas neteisingai. | 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 |
