# Szybki start

> Utwórz klucz API, wyślij link do nagrania lub plik i pobierz transkrypcję. Przykłady w cURL, Pythonie i Node.js.

Canonical: https://transcript1.com/pl/docs/getting-started
Language: pl
Last updated: 2026-10-14

API działa pod adresem `https://api.transcript1.com`. Do każdego requestu dodaj klucz API w nagłówku `Authorization`. Zacznij od utworzenia klucza, potem wyślij nagranie i pobierz gotowy tekst.

## 1. Załóż konto i wygeneruj klucz API

[Załóż konto](https://transcript1.com/signup) przez e-mail, Google lub Microsoft. Po potwierdzeniu e-maila dostajesz jednorazowo 60 minut za darmo. Jeśli rejestrujesz się przez Google lub Microsoft, masz je od razu. Nie musisz podawać karty.

Otwórz [„API keys”](https://transcript1.com/dashboard/account/tokens) w panelu pod adresem `/dashboard/account/tokens` i wygeneruj klucz. Rozpoznasz go po prefiksie `t1_`. Klucz zobaczysz tylko raz, więc od razu go skopiuj i ustaw zmienną środowiskową `TRANSCRIPT1_API_KEY`:

```bash
export TRANSCRIPT1_API_KEY="t1_..."
```

## 2. Wyślij link do nagrania

Możesz wkleić link do nagrania z YouTube, X, TikToka, Instagrama, Facebooka, Bluesky, Twitcha, Dailymotion, Pinteresta, LinkedIn i Snapchata. W [dokumentacji linków i ustawień](https://transcript1.com/pl/docs/sources-and-options) sprawdzisz, jakie publiczne nagrania przyjmujemy i jakie są ograniczenia. Nie musisz podawać pola `platform`, bo API rozpoznaje platformę z linku. Poniżej użyjemy nagrania z YouTube.

Wyślij link przez `POST /v1/transcriptions`. Z parametrem query `wait=60` serwer poczeka do 60 sekund, zanim odpowie. Ta odpowiedź nie zawiera jeszcze tekstu transkrypcji. W przykładzie w Pythonie pobierasz go osobnym requestem do `GET /v1/transcriptions/:id?wait=60`. SDK dla Node.js pobiera klucz z `TRANSCRIPT1_API_KEY` i samo obsługuje oczekiwanie.

### cURL

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'
```

### Python

```python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
    "https://api.transcript1.com/v1/transcriptions?wait=60",
    headers=headers,
    json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
    transcription = requests.get(
        f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
        headers=headers,
    ).json()
    if transcription["status"] in ("completed", "failed", "canceled"):
        break

if transcription["status"] == "completed":
    print(transcription["transcript"]["text"])
else:
    print(transcription["status"], transcription["error"])
```

### Node.js

Zapisz kod w pliku `index.mjs`. Jeśli wybierzesz plik `.js`, dodaj `"type": "module"` w `package.json`. Przykład uruchom poleceniem `node index.mjs`.

```javascript
// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';

const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);
```

Domyślnie najpierw sprawdzamy napisy w języku nagrania na YouTube, X, TikToku, Bluesky, Dailymotion i LinkedIn. Jeśli ich nie ma lub nie da się z nich skorzystać, AI przepisuje dźwięk. Na YouTube i X obsługa napisów działa tak jak dotychczas. Pozostałe platformy z napisami podają czasy całych segmentów, bez czasów pojedynczych słów. Nie każde nagranie ma napisy, których można użyć.

Jeśli ustawisz `source=stt` albo włączysz podział na rozmówców, od razu korzystasz z audio. Tryb `captions` (tylko napisy) nie pobiera dźwięku i nie uruchamia STT. Szczegóły znajdziesz w [ustawieniach źródła transkrypcji](https://transcript1.com/pl/docs/sources-and-options).

## 3. Sprawdź status i pobierz tekst

Zacznij od kodu HTTP w odpowiedzi:

- `200`: transkrypcja zakończyła się w czasie oczekiwania. Sprawdź, czy ma status `completed`, `failed` czy `canceled`.
- `202`: transkrypcja jeszcze trwa. Wywołuj `GET /v1/transcriptions/:id?wait=60`, aż pole `status` wskaże zakończenie. Każdy taki request czeka na odpowiedź do 60 sekund.

Po ukończeniu transkrypcji dostaniesz taki JSON. Tutaj pokazujemy go w skrócie:

```json
{
  "id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
  "object": "transcription",
  "status": "completed",
  "transcript_source": "youtube_captions",
  "language": "en",
  "billed_minutes": 4,
  "transcript": {
    "text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
    "speakers": [],
    "segments": [
      { "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
      { "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
    ]
  }
}
```

Cały tekst znajdziesz w `transcript.text`. W `transcript.segments` masz go podzielonego na segmenty. Każdy zawiera `start` i `end`, czyli czas początku i końca w sekundach.

Do pobrania zwykłego tekstu wybierz format `text`, a do napisów `srt` lub `vtt`:

```bash
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"
```

Endpoint `GET /v1/transcriptions/:id?format=srt` zwraca napisy dopiero przy statusie `completed`. Tak samo działają pozostałe formaty tekstowe. Zanim transkrypcja się skończy, dostaniesz JSON z jej aktualnym statusem.

## 4. Wyślij plik z dysku

Plik audio lub wideo do 95 MB wyślij jednym requestem jako `multipart/form-data`:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F file=@interview.m4a
```

Większe pliki, do 2 GB, wysyłaj w częściach. Jeśli upload się przerwie, możesz go wznowić. Instrukcję znajdziesz w [dokumentacji wysyłania plików](https://transcript1.com/pl/docs/uploads).

## Co dalej

- [Linki i ustawienia](https://transcript1.com/pl/docs/sources-and-options): wybierz napisy lub AI, język i podział na rozmówców.
- [Wysyłanie plików](https://transcript1.com/pl/docs/uploads): wrzuć plik jednym requestem lub podziel go na części.
- [Webhooki](https://transcript1.com/pl/docs/webhooks): odbierz podpisany request po zakończeniu transkrypcji.
- [Serwer MCP](https://transcript1.com/pl/docs/mcp): podłącz transcript1 do Claude, ChatGPT, Cursor, VS Code lub Claude Code.
- [Dokumentacja API](https://transcript1.com/pl/docs/api-reference): sprawdź wszystkie endpointy i parametry.
