# Panduan mulai cepat

> Buat kunci API, lalu dapatkan transkrip dari link video atau file lewat cURL, Python, atau Node.js.

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

Gunakan `https://api.transcript1.com` sebagai alamat API. Sertakan kunci API pada header `Authorization` di setiap request. Panduan ini membantu Anda menyiapkan kunci, mengirim video atau file, lalu mengambil transkripnya.

## 1. Siapkan akun dan kunci API

Daftar lewat [/signup](https://transcript1.com/signup) menggunakan email, Google, atau Microsoft. Setelah verifikasi email, Anda mendapat 60 menit gratis. Jika mendaftar lewat Google atau Microsoft, menit gratis langsung tersedia. Jatah ini hanya diberikan sekali per akun, tanpa kartu kredit.

Buka halaman [“API keys”](https://transcript1.com/dashboard/account/tokens) di dasbor (`/dashboard/account/tokens`) dan buat kunci baru. Kunci berawalan `t1_` hanya muncul sekali. Langsung salin, lalu simpan dalam variabel `TRANSCRIPT1_API_KEY`:

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

## 2. Kirim link video

Anda bisa mengirim link YouTube, X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn, dan Snapchat. Pastikan link mengarah ke rekaman publik yang sesuai dengan [ketentuan sumber](https://transcript1.com/id/docs/sources-and-options). Tidak perlu mengisi `platform`: API mengenalinya dari link. Contoh berikut memakai video YouTube.

Kirim URL video ke `POST /v1/transcriptions`. Tambahkan `wait=60` pada query agar API menunggu hingga 60 detik sebelum merespons. Respons endpoint ini tidak menyertakan transkrip. Karena itu, contoh Python mengambilnya lewat request terpisah ke `GET /v1/transcriptions/:id?wait=60`. SDK Node.js otomatis membaca `TRANSCRIPT1_API_KEY` dan menangani proses menunggu ini.

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

Simpan kode berikut di `index.mjs`, lalu jalankan `node index.mjs`. Jika memakai file `.js`, tambahkan `"type": "module"` di `package.json`.

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

Dengan pengaturan bawaan, transcript1 mencari subtitle dalam bahasa asli video terlebih dahulu di YouTube, X, TikTok, Bluesky, Dailymotion, dan LinkedIn. Jika tidak ada subtitle yang bisa dipakai, transcript1 mentranskripsi audio dengan AI. Cara pengambilan subtitle YouTube dan X tetap sama. Subtitle dari platform selain YouTube hanya menyertakan timestamp per segmen, bukan per kata.

Tidak semua video menyediakan subtitle yang bisa dipakai. Pilih `source=stt` atau aktifkan pengenalan pembicara untuk langsung memproses audio. Sebaliknya, mode `captions` (hanya subtitle) tidak mengunduh audio maupun menjalankan STT. Baca [sumber dan pengaturan transkripsi](https://transcript1.com/id/docs/sources-and-options) untuk memilih mode yang sesuai.

## 3. Ambil transkrip

Perhatikan kode status HTTP pada respons:

- `200`: proses sudah berakhir dalam waktu tunggu. Status akhirnya bisa `completed`, `failed`, atau `canceled`.
- `202`: transkripsi masih berjalan. Panggil `GET /v1/transcriptions/:id?wait=60` untuk menunggu lagi hingga 60 detik. Ulangi sampai `status` menunjukkan proses sudah berakhir.

Berikut contoh respons untuk transkripsi yang selesai. Beberapa bagian disingkat:

```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." }
    ]
  }
}
```

Baca teks lengkap di `transcript.text`. Untuk potongan teks beserta waktunya, gunakan `transcript.segments`. Setiap segmen memiliki `start` dan `end` dalam detik.

Butuh teks biasa atau file subtitle? Pilih format `text`, `srt`, atau `vtt`:

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

Contoh tersebut memanggil `GET /v1/transcriptions/:id?format=srt`. API baru mengirim format yang Anda pilih setelah statusnya `completed`. Selama proses belum selesai, respons tetap berupa objek JSON yang memuat status transkripsi.

## 4. Kirim file audio atau video

Untuk file audio atau video di komputer Anda, gunakan `multipart/form-data`. File hingga 95 MB bisa dikirim dalam satu request:

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

File yang lebih besar, hingga 2 GB, perlu diunggah per chunk. Jika koneksi terputus, unggahan bisa dilanjutkan. Ikuti [panduan unggahan](https://transcript1.com/id/docs/uploads).

## Langkah berikutnya

- [Sumber dan pengaturan](https://transcript1.com/id/docs/sources-and-options): pilih subtitle atau transkripsi AI, atur bahasa, dan aktifkan pengenalan pembicara.
- [Mengunggah file](https://transcript1.com/id/docs/uploads): kirim file sekaligus atau bagi menjadi chunk.
- [Webhook](https://transcript1.com/id/docs/webhooks): terima notifikasi bertanda tangan setelah transkripsi selesai.
- [Server MCP](https://transcript1.com/id/docs/mcp): hubungkan transcript1 ke Claude, ChatGPT, Cursor, VS Code, dan Claude Code.
- [Referensi API](https://transcript1.com/id/docs/api-reference): cari endpoint dan parameter yang Anda perlukan.
