# Menggunakan CLI dari terminal

> Buat transkrip link video dan file dengan transcript1 di terminal. Proses satu folder, simpan subtitle, atau kirim JSON ke skrip dan agen.

Canonical: https://transcript1.com/id/docs/cli
Language: id
Last updated: 2026-10-18

Ketik `transcript1` diikuti link YouTube, X, TikTok, Instagram, Facebook, atau Bluesky. Anda juga bisa memakai path file audio atau video di komputer. CLI akan mengambil transkripnya tanpa memerlukan Node.js. Platform tambahan dan versi CLI yang diperlukan dijelaskan berikut. Daftar link yang diterima beserta batasannya ada di [sumber dan pengaturan](https://transcript1.com/id/docs/sources-and-options).

Untuk link media sosial, gunakan CLI 1.2.0 atau lebih baru. Versi 1.1.0 dan sebelumnya hanya mengenali link YouTube; link baru ditolak sebelum dikirim ke API. Perbarui dengan `transcript1 update`.

Versi minimum tersebut berlaku untuk enam platform awal. Untuk Twitch, Dailymotion, Pinterest, LinkedIn, dan Snapchat, gunakan rilis CLI yang sudah mendukung platformnya. Rilis lama bisa menolak link sebelum request sampai ke API.

Pastikan postingan bisa diakses publik. Jika satu postingan memuat beberapa video, hanya video pertama yang ditranskripsi. Periksa [daftar sumber](https://transcript1.com/id/docs/sources-and-options) untuk format link pendek dan batas penggunaannya.

## Pasang CLI

Jalankan perintah berikut di macOS atau Linux, baik x64 maupun ARM64:

```bash
curl -fsSL https://transcript1.com/install.sh | sh
```

Installer menyimpan binary di `~/.local/bin`. Jika perlu mengatur PATH, petunjuknya muncul setelah instalasi. Untuk memilih folder lain, isi `TRANSCRIPT1_INSTALL_DIR`.

Anda juga mendapat alias `t1` sebagai bentuk singkat dari `transcript1`. Untuk zsh, installer menambahkan `alias transcript1='noglob transcript1'` ke `~/.zshrc`. Alias ini membuat link yang mengandung `?` bisa dipakai tanpa tanda kutip. Jika tidak ingin installer mengubah konfigurasi shell, atur `TRANSCRIPT1_NO_MODIFY_SHELL=1`.

Untuk Windows x64, jalankan melalui PowerShell:

```powershell
irm https://transcript1.com/install.ps1 | iex
```

Installer Windows menyimpan CLI di `%LOCALAPPDATA%\Programs\transcript1`, membuat alias `t1.cmd`, lalu menambahkan foldernya ke PATH pengguna. Buka terminal baru setelah instalasi agar perintah bisa dipakai.

## Hubungkan CLI ke akun Anda

Mulai proses login dengan:

```bash
transcript1 login
```

CLI membuka transcript1.com di browser. Jika dijalankan lewat SSH atau tanpa layar, CLI menampilkan link untuk dibuka sendiri. Pastikan kode di terminal sama dengan kode pada halaman, lalu klik “Approve”. Setelah Anda menyetujui akses, CLI menyimpan kunci bernama `transcript1 CLI (<computer name>)`. Kunci tersebut juga tercantum di halaman [“API keys”](https://transcript1.com/dashboard/account/tokens).

Jika hanya ingin menampilkan link, jalankan `transcript1 login --no-browser`.

Sudah punya kunci API? Tempelkan lewat `transcript1 login --with-key`. Anda juga bisa memberikannya lewat stdin: `transcript1 login < key.txt`.

Untuk CI atau agen, isi `TRANSCRIPT1_API_KEY`. Kunci dari variabel ini dipakai lebih dahulu daripada kunci tersimpan. Jika agen tidak memiliki terminal atau kunci, agen bisa menjalankan `transcript1 login < /dev/null`, lalu mengirim link persetujuan kepada Anda.

Jalankan `transcript1 logout` untuk mencabut kunci CLI dan menghapus salinannya dari komputer. Jika pencabutan gagal, salinan lokal tetap dihapus dan CLI meminta Anda mencabut kuncinya di halaman “API keys”. Untuk kunci yang dimasukkan dengan cara ditempel, lakukan pencabutan langsung di halaman tersebut.

## Ambil transkrip dari link

```bash
transcript1 'https://youtu.be/dQw4w9WgXcQ'
```

CLI menunggu proses selesai, lalu menulis teks transkrip ke stdout. Informasi progres masuk ke stderr. Untuk YouTube, X, TikTok, Bluesky, Dailymotion, dan LinkedIn, transcript1 mencari subtitle bahasa asli yang bisa dipakai terlebih dahulu. Jika tidak ada, audio ditranskripsi dengan AI.

Di zsh, apit link dengan tanda kutip. Tanpanya, karakter `&` memisahkan perintah, sedangkan `?` dianggap sebagai glob jika alias dari installer tidak dipakai.

## Unggah file dari komputer

```bash
transcript1 interview.mp3
transcript1 -f srt -o interview.srt interview.mp3
```

CLI menangani unggahan file hingga 2 GB (2.000.000.000 byte), lalu menunggu transkripnya. Gunakan file berekstensi mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm, atau mkv.

## Proses beberapa rekaman sekaligus

Cantumkan beberapa input, atau berikan path folder rekaman:

```bash
transcript1 interview.mp3 lecture.mp4
transcript1 -o transcripts/ ./recordings
transcript1 --jobs 4 -o transcripts/ interview.mp3 'https://youtu.be/dQw4w9WgXcQ'
```

Anda bisa memakai pola seperti `recordings/*.mp3`, termasuk di Windows. Jika input berupa folder, CLI hanya mengambil file media langsung di dalamnya, bukan subfolder, lalu mengurutkannya berdasarkan nama. Untuk beberapa input, CLI menyimpan satu file transkrip per input di `./transcripts` secara bawaan. Atur jumlah proses bersamaan lewat `--jobs`: nilainya 1–20, dengan bawaan 2.

Untuk membaca input dari stdin, gunakan `-` dan tulis satu link atau path file per baris. Contoh di shell macOS atau Linux:

```bash
transcript1 -o transcripts/ - < inputs.txt
```

CLI mengabaikan baris kosong dan baris berawalan `#`. Jika input yang persis sama muncul beberapa kali, input itu hanya diproses sekali.

Untuk satu input, `-o` menentukan nama file tujuan. Nilainya dianggap sebagai folder jika folder tersebut sudah ada atau path diakhiri `/`. Untuk beberapa input, `-o` selalu menentukan folder tujuan. CLI membuat foldernya jika belum ada.

Jika file transkrip untuk link YouTube atau file lokal sudah ada, input tersebut dilewati. Untuk memprosesnya lagi dan mengganti file lama, tambahkan `--overwrite`:

```bash
transcript1 --overwrite -o transcripts/ ./recordings
```

## Pilih format dan pengaturan

| Opsi | Kegunaan |
|---|---|
| `-f`, `--format` | Pilih `text` (bawaan), `srt`, `vtt`, atau `json`. Format JSON memuat objek transkripsi dari API. |
| `--speakers` | Aktifkan pengenalan pembicara dengan label Speaker 1, Speaker 2, dan seterusnya. |
| `--timestamps` | Tambahkan `[hh:mm:ss]` di awal setiap baris. Hanya berlaku untuk format teks. |
| `--language` | Tentukan kode bahasa ISO 639-1, atau biarkan `auto` sebagai bawaan. |
| `--source` | Pilih `auto` (bawaan) atau `stt`. Untuk YouTube, X, TikTok, Bluesky, Dailymotion, dan LinkedIn, Anda juga bisa memilih `captions` jika tersedia track yang bisa dipakai. Mode `captions` (hanya subtitle) tidak mengunduh audio dan tidak beralih ke STT. |
| `--fresh` | Buat transkripsi baru alih-alih memakai kembali transkripsi link dari 24 jam terakhir. |

Gabungkan pengenalan pembicara dan timestamp seperti berikut:

```bash
transcript1 --speakers --timestamps --language en interview.mp3
```

Jangan gabungkan `--speakers` dengan `--source captions`. Pada mode auto, pengenalan pembicara langsung memakai audio tanpa mengambil subtitle. Dukungan subtitle YouTube dan X tetap sama; TikTok, Bluesky, Dailymotion, dan LinkedIn juga bisa memakai track yang tersedia. Selain YouTube, timestamp subtitle hanya per segmen (`words: null`), termasuk pada subtitle otomatis. Baca [rincian sumber dan bahasa](https://transcript1.com/id/docs/sources-and-options) untuk perbandingannya.

## Gunakan CLI dalam skrip atau agen

Jika agen bisa menjalankan shell, pasang CLI dan isi `TRANSCRIPT1_API_KEY`. Setelah itu, agen cukup menjalankan `transcript1 <link>` atau `transcript1 <file>`. Untuk klien MCP, ikuti [panduan server MCP](https://transcript1.com/id/docs/mcp).

Tambahkan `--json` agar setiap input yang selesai langsung ditulis sebagai satu baris JSON ke stdout. Mode ini tidak menampilkan progres, ringkasan, atau pemberitahuan versi baru:

```bash
transcript1 --json 'https://youtu.be/dQw4w9WgXcQ'
```

Untuk job yang sudah berakhir, baris JSON memuat objek transkripsi API ditambah `input` dan `reused`. Jika transkrip disimpan ke file, objek memuat `file` sebagai pengganti `transcript`. Jika error terjadi sebelum ID dibuat, Anda mendapat `input` serta objek `error` dengan `code` dan `message`. Input yang dilewati memuat `input`, `skipped` bernilai `exists` atau `out_of_minutes`, serta `file` jika relevan. Nilai `exists` hanya berlaku untuk link YouTube dan file lokal.

Untuk satu input tanpa `-o`, mode `--json` memasukkan transkrip ke objek dan mengabaikan `-f`. Untuk beberapa input tanpa `-o`, transkrip disimpan di `./transcripts`; setiap baris JSON memakai `file`, bukan `transcript`. Jika CLI menulis file, `-f` menentukan format file tersebut. Opsi `-q` atau `--quiet` hanya menyembunyikan progres dan ringkasan. Teks transkrip serta error tetap ditampilkan.

Jika ingin memulai proses sekarang dan mengambil transkrip belakangan:

```bash
transcript1 --no-wait interview.mp3
transcript1 get <id>
```

Salin ID dari perintah pertama untuk mengganti `<id>`. Opsi `--no-wait` menampilkan ID dan status, atau objek JSON jika digabungkan dengan `--json`. Perintah `get` menunggu selama proses masih berjalan. Opsi yang diterima: `-f`, `-o`, `--timestamps`, `--no-wait`, `--json`, dan `-q`.

## Perbarui CLI

```bash
transcript1 update
```

Jika stderr terhubung ke terminal, CLI memeriksa versi baru maksimal sekali setiap 24 jam dan menampilkan pemberitahuan jika tersedia. Nonaktifkan pemeriksaan dengan `TRANSCRIPT1_NO_UPDATE_CHECK=1`. Opsi `--json` dan `-q` juga menyembunyikan pemberitahuan tersebut.

## Baca exit code

| Kode | Keterangan |
|---|---|
| 0 | Semua input berhasil, atau dilewati karena file transkrip sudah ada untuk link YouTube maupun file lokal. |
| 1 | Ada input yang gagal atau dilewati karena saldo menit tidak cukup. |
| 2 | Argumen perintah atau proses login bermasalah. |
| 130 | Proses diinterupsi. |

Untuk melihat semua perintah dan flag, jalankan `transcript1 --help` atau cukup `transcript1` tanpa argumen.
