DokumentasiPanduan mulai cepat

Panduan mulai cepat

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

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 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” di dasbor (/dashboard/account/tokens) dan buat kunci baru. Kunci berawalan t1_ hanya muncul sekali. Langsung salin, lalu simpan dalam variabel TRANSCRIPT1_API_KEY:

export TRANSCRIPT1_API_KEY="t1_..."

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

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

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.

// 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 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:

{
  "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:

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:

curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F [email protected]

File yang lebih besar, hingga 2 GB, perlu diunggah per chunk. Jika koneksi terputus, unggahan bisa dilanjutkan. Ikuti panduan unggahan.

Langkah berikutnya

  • Sumber dan pengaturan: pilih subtitle atau transkripsi AI, atur bahasa, dan aktifkan pengenalan pembicara.
  • Mengunggah file: kirim file sekaligus atau bagi menjadi chunk.
  • Webhook: terima notifikasi bertanda tangan setelah transkripsi selesai.
  • Server MCP: hubungkan transcript1 ke Claude, ChatGPT, Cursor, VS Code, dan Claude Code.
  • Referensi API: cari endpoint dan parameter yang Anda perlukan.

Pembaruan terakhir 14 Oktober 2026