Langsung ke konten utama

Transkripsi otomatis untuk agen dan skrip

Transkripsi otomatis mengubah rekaman audio menjadi teks yang dapat diedit. Aplikasi menyiapkan audio video di perangkat Anda; agen dapat mengirim audio yang sudah disiapkan lewat REST atau MCP.

Transkripsi otomatis di Hushscript mengubah rekaman audio yang sudah ada menjadi transkrip yang dapat diedit. Di aplikasi browser, Anda juga dapat memulai dari video lokal: Hushscript menyiapkan audionya di perangkat Anda dan hanya mengirim audio itu untuk pengenalan online. Anda sendiri yang meninjau dan mengoreksi hasilnya: ini bukan layanan transkripsi yang dikoreksi manusia atau bersertifikat.

Cara kerja transkripsi otomatis

  1. Siapkan rekaman. Gunakan file audio, impor tautan audio yang didukung, atau rekam suara Anda di aplikasi browser. Untuk rekaman video, pilih file lokal agar aplikasi dapat menyiapkan audionya di perangkat Anda.
  2. Kirim dan tunggu transkrip. Aplikasi menangani unggahan dan status. Agen dapat mengunggah audio yang sudah disiapkan dalam beberapa bagian lewat REST API atau memakai alat MCP bercakupan, lalu memeriksa pekerjaannya sampai transkrip siap.
  3. Tinjau dan ekspor. Edit transkrip dan label penutur di aplikasi, atau ambil teksnya lewat API. Token agen juga dapat mengekspor transkrip sesuai scope yang diberikan kepadanya.

Perangkat lunak transkrip otomatis untuk audio dan video

Perangkat lunak transkripsi otomatis Hushscript mengubah ucapan yang direkam menjadi teks yang dapat Anda cari, edit, dan ekspor. Entri rekam di aplikasi juga memungkinkan Anda merekam suara sebelum transkripsi. Untuk file rekaman mandiri tanpa transkripsi, gunakan perekam suara gratis.

Transkripsi video otomatis mengikuti alur teks yang sama setelah aplikasi mengekstrak atau mengonversi audionya secara lokal. Contoh unggahan REST di bawah dimulai dengan audio yang sudah disiapkan; untuk menyerahkan file video lokal Anda ke aplikasi, gunakan alur browser di video ke teks.

Bisakah saya mencoba transkripsi otomatis secara gratis?

Bisa. Pratinjau publik mentranskripsikan hingga lima menit dari satu file, tautan audio yang didukung, atau rekaman browser sebelum Anda masuk, dan video lokal berfungsi setelah browser menyiapkan audionya. Transkripsi lengkap memerlukan akun: akun pribadi yang memenuhi syarat mendapat 30 menit gratis setelah verifikasi kartu (lihat harga untuk cara kerjanya), sedangkan akun mesin melewati menit kredit sambutan dan dimulai dengan paket yang dibelinya saat pendaftaran.

Jalankan otomatisasi transkrip dengan API atau MCP

Aplikasi browser ditujukan untuk bekerja langsung dengan rekaman. Untuk otomatisasi transkrip, REST API dan server MCP memungkinkan agen mengunggah audio yang sudah disiapkan, memeriksa pekerjaan, mengambil transkrip, dan mengekspor hasil. Agen dapat membuka akunnya sendiri dengan alur bayar dulu, tanpa pemegang akun manusia; checkout yang dihosting tetap memerlukan browser, dan penerbit kartu mungkin meminta langkah autentikasi. Sebagai gantinya, seseorang dapat membuat token bercakupan dari akun yang sudah ada di aplikasi. Panduan ini mengikuti akun mesin dari pendaftaran hingga rotasi kredensial.

Mendaftar

POST /v1/agent/accounts membuka pendaftaran tanpa antarmuka (headless). Belum ada akun, tanpa cookie, dan tanpa token: hanya pembelian yang tertunda.

curl -X POST https://api.hushscript.com/v1/agent/accounts \
  -H "Content-Type: application/json" \
  -d '{
    "contact_email": "ops@example-agent.dev",
    "pack_id": "300min",
    "accept_terms_version": "2026-10-20",
    "agent": {
      "name": "research-crawler",
      "platform": "langgraph",
      "contact_url": "https://example-agent.dev/bots/research-crawler"
    }
  }'
{
  "signup_id": "hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061",
  "claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d",
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_test_a1B2c3D4e5F6",
  "pack": "300min",
  "amount": 599,
  "currency": "usd",
  "expires_at": 1789112400
}

contact_email hanya untuk tanda terima dan pemberitahuan, bukan untuk login. pack_id adalah salah satu dari 45min, 300min, 900min, 1800min, 6000min; jangan pernah mengirim amount atau currency sendiri, keduanya diturunkan dari paket di server. Hanya dua paket terkecil, 45min dan 300min, yang dapat dibeli saat pendaftaran. pack_id yang lebih besar ditolak, dan penolakan itu membawa details.allowed_packs yang mencantumkan apa yang boleh dibeli akun ini saat ini, sehingga pemanggil dapat mencoba lagi tanpa menebak. Sisa tangga paket terbuka seiring usia, bukan volume: lihat Apa yang boleh dibeli akun baru di bawah. accept_terms_version harus persis sama dengan versi kebijakan server saat ini, atau panggilan gagal dengan policy_version_stale, yang menyebutkan nilai saat ini di body-nya. Petunjuk data_region opsional hanya dihormati jika sesuai dengan wilayah yang sudah tersirat dari lokasi jaringan Anda. dry_run: true opsional memvalidasi semuanya tanpa sesi Stripe dan tanpa tagihan; signup_id-nya diawali dry_ dan tidak pernah dapat diklaim.

claim_secret hanya ditampilkan satu kali, dalam respons ini. Hushscript hanya menyimpan hash-nya. Kehilangannya sebelum panggilan klaim berarti kehilangan pendaftaran: tidak ada jalur pemulihan untuk claim secret. Pendaftaran berbayar yang belum diklaim masuk ke proses pengembalian dana yang dijelaskan di bawah; pendaftaran itu tidak dapat dipulihkan lewat pencarian.

Selesaikan checkout di browser Anda sendiri

checkout_url adalah halaman Stripe Checkout yang dihosting. Pendaftaran memerlukan browser untuk langkah ini, dan itu tidak harus browser milik manusia: agen dapat menjalankannya dengan otomatisasinya sendiri (mengisi kolom kartu, mengirim, mengikuti pengalihan). Hushscript tidak pernah melihat detail kartu dengan cara apa pun; yang melihatnya Stripe. Batas waktu untuk menyelesaikannya lalu mengklaim adalah 30 menit, yaitu expires_at di atas.

Pemeriksaan berkala setiap jam menyisir pendaftaran berbayar yang belum diklaim setelah jendela klaim 30 menit ditambah masa tenggang satu jam berikutnya. Sistem mencoba mengembalikan dana penuh, karena menit hanya dikreditkan saat klaim. Percobaan pengembalian dana yang gagal diulang dan mungkin memerlukan penanganan manual; dana tidak dijamin tiba pada waktu tertentu.

Klaim akun

POST /v1/agent/accounts/{signup_id}/claim mengubah pendaftaran berbayar yang belum diklaim menjadi akun sungguhan, dalam satu panggilan.

curl -X POST https://api.hushscript.com/v1/agent/accounts/hsr1:eu:4c3a1f9e7b2d4e6f8a0c1b2d3e4f5061/claim \
  -H "Content-Type: application/json" \
  -d '{"claim_secret": "cs_9f3d2a1b7e6c4f5a8b9d0e1f2a3b4c5d"}'
{
  "user_id": "usr_7d1a2b3c4d5e6f708192a3b4c5d6e7f8",
  "pat": "hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170",
  "scopes": [
    "transcripts:read",
    "transcripts:write",
    "transcribe",
    "account:read",
    "export",
    "billing",
    "pat:rotate"
  ],
  "balance_seconds": 18000
}

Klaim hanya dapat dipakai sekali. Klaim membuat tepat satu akun, dengan identitas login sintetis yang tidak dapat dituju di baliknya, memberikan paket yang dibayar tepat satu kali meskipun permintaan diulang, dan membuat tepat satu PAT: nilai pat di atas, yang juga hanya ditampilkan satu kali.

Token pertama itu dapat mentranskripsikan, membaca dan mengedit transkrip, mengekspor, membaca saldo akun, membeli menit, dan merotasi dirinya sendiri. Token itu tidak memberikan scope Insights, konteks, organisasi, atau penulisan pengaturan. Server MCP hanya menawarkan alat yang sesuai dengan scope token.

Secret yang salah, signup_id yang tidak dikenal, pendaftaran yang sudah diklaim, yang sudah dikembalikan dananya, dan yang sudah kedaluwarsa semuanya dijawab dengan error agent_claim_invalid yang identik. Pemanggil tidak punya cara membedakannya dari respons, dan itu disengaja. Baru setelah secret itu sendiri valid, status pembayaran berperan: Checkout Session yang belum selesai dijawab dengan wrong_state.

balance_seconds di atas adalah seluruh saldo awal. Akun agen tidak mendapat kredit sambutan dan tidak mendapat menit gratis dari verifikasi kartu seperti akun pertama milik seseorang; mereka mulai hanya dari paket yang mereka bayar. Itu disengaja: akun tersebut sudah dibayar sebelum ada.

Beli lebih banyak menit

Mulai dari sini, akun memakai antarmuka /v1/ yang didokumentasikan lengkap oleh /developers.

curl -X POST https://api.hushscript.com/v1/billing/purchase \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
  -H "Content-Type: application/json" \
  -d '{
    "pack": "300min",
    "quick_payment_method_id": "pm_1PqR2sT3uV4wX5yZ",
    "idempotency_key": "purchase-2026-09-11-01"
  }'
{
  "balance_seconds": 36000
}

Ini memerlukan scope billing, yang sudah diberikan oleh respons klaim di atas. Klaim juga mengaktifkan penagihan pada token dan akun; token yang dibuat seseorang memerlukan scope billing dan kedua sakelar penagihan diaktifkan. Panggilan penagihan PAT berbagi batas yang lebih ketat, 60 permintaan per menit per akun, di seluruh rute penagihan yang memanggil Stripe, sebelum permintaan Stripe-nya.

Apa yang boleh dibeli akun baru

Ukuran paket terbuka berdasarkan usia pembayaran yang telah selesai, bukan seberapa banyak akun membelanjakan. Sebuah pembelian hanya dihitung ke tingkat berikutnya setelah lewat 7 hari dari tanggal pembayarannya sendiri, sehingga akun yang benar-benar baru tidak dapat menjangkau paket besar dengan membeli cepat-cepat.

Pembayaran selesai yang usianya lewat 7 hari Paket yang boleh dibeli
Belum ada, termasuk klaim baru 45min, 300min
Senilai minimal 45 menit menambah 900min, 1800min
Senilai minimal 15 jam menambah 6000min

Pembelian yang ditolak menyebutkan set saat ini di details.allowed_packs alih-alih gagal begitu saja. Panggilan pendaftaran menerapkan baris pertama tabel itu, itulah sebabnya panduan di atas membeli 300min dan bukan yang lebih besar. Terpisah dari tangga itu, batas pemakaian bergulir 24 jam membatasi seberapa cepat saldo yang belum melewati jendela sengketa dapat dipakai. Pembelian saat pendaftaran dihitung ke tiga percobaan pembelian akun dalam 24 jam bergulir; percobaan yang ditolak setelah reservasi juga dihitung.

Transkripsikan

Mengunggah dan mentranskripsikan memakai alur multipart yang sama seperti akun lain mana pun. Contoh API mengirim audio yang sudah disiapkan; contoh itu tidak mengunggah file sumber dari video lokal.

curl -X POST https://api.hushscript.com/v1/uploads \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170" \
  -H "Content-Type: application/json" \
  -d '{
    "size_bytes": 48213504,
    "duration_seconds": 1860,
    "title": "weekly-standup-2026-09-11",
    "idempotency_key": "upload-2026-09-11-01"
  }'
{
  "job_id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
  "part_urls": [
    { "n": 1, "url": "https://r2.hushscript.com/uploads/job_3a2b1c0d.../part-1?X-Amz-Signature=..." }
  ]
}

PUT setiap bagian ke URL presigned-nya, lalu POST ke /complete milik job yang sama dengan n dan etag dari setiap bagian yang dikirim dengan cara itu. Setelah itu, polling job-nya:

curl https://api.hushscript.com/v1/jobs/job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "id": "job_3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d",
  "state": "done",
  "transcript_id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180"
}
curl https://api.hushscript.com/v1/transcripts/trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180 \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "id": "trs_6f5e4d3c2b1a0908f7e6d5c4b3a29180",
  "language": "en",
  "duration_seconds": 1860,
  "body": "..."
}

Rotasi kredensial

Akun mesin tidak punya kata sandi dan tidak punya kotak surat yang dapat dipakai, sehingga tidak ada jalur “lupa kata sandi” jika PAT bocor atau sekadar perlu diganti. Rotasi adalah jalur itu.

curl -X POST https://api.hushscript.com/v1/agent/credentials/rotate \
  -H "Authorization: Bearer hsr1:eu:pat.k3n2j1.8f7e6d5c4b3a29180716253443526170"
{
  "pat": "hsr1:eu:pat.p9q8r7.1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d",
  "pat_id": "p9q8r7",
  "scopes": [
    "transcripts:read",
    "transcripts:write",
    "transcribe",
    "account:read",
    "export",
    "billing",
    "pat:rotate"
  ],
  "expires_at": null
}

Panggilan ini tidak memakai body. Ia secara atomik membuat penerus dan mencabut token yang mengautentikasi permintaan itu, sehingga PAT lama gagal pada panggilan berikutnya dengan token tersebut. Penerus mempertahankan scope, izin penagihan, nama, label klien, dan kebijakan kedaluwarsa pendahulunya. Rute ini hanya menyentuh token milik pemanggil sendiri: ia tidak dapat mendaftar, membuat, atau mencabut kredensial lain di akun. Ini satu-satunya jalur pemulihan kredensial yang dimiliki akun mesin, jadi lakukan rotasi sebelum token lama dibuang, bukan sesudahnya.

Error

Status Kode Slug Arti
401 2000 unauthorized Token bearer tidak ada atau tidak valid
403 2023 pat_scope_missing Token tidak memiliki scope yang diperlukan panggilan ini, atau penagihan dinonaktifkan untuk akun
403 4021 pat_purchase_requires_app Tidak ada kartu tersimpan yang disebutkan, atau pembebanan ditolak; tidak ada yang ditagihkan
403 4023 pat_purchase_requires_authentication Penerbit kartu meminta verifikasi tambahan yang tidak dapat diselesaikan pemanggil; kartunya sendiri tidak bermasalah
402 3001 insufficient_balance Saldo tidak cukup untuk menerima job
429 5000 rate_limited Terlalu banyak permintaan; tunggu sesuai Retry-After

Error ini mencakup kontrol pendaftaran dan pembelian agen. Batas pembelian juga berlaku untuk pembelian PAT di akun manusia; pembelian lewat sesi manusia dikecualikan.

Status Kode Slug Arti
409 4035 agent_signup_pending Pendaftaran untuk contact_email ini masih terbuka. Tunggu sampai diklaim, dikembalikan dananya, atau kedaluwarsa, atau gunakan alamat lain
401 4036 agent_claim_invalid Secret salah, pendaftaran tidak dikenal, sudah diklaim, sudah dikembalikan dananya, atau kedaluwarsa. Identik dengan sengaja
403 4037 agent_pack_locked Tingkat akun ini belum mengizinkan paket tersebut. Membawa details.allowed_packs; coba lagi dengan salah satunya
429 4038 agent_purchase_capped 3 percobaan pembelian dalam 24 jam terakhir, termasuk kegagalan setelah reservasi dan pembelian saat pendaftaran akun agen. Dihitung per akun lintas kredensial, sehingga rotasi tidak mengatur ulangnya. Membawa details.retry_after_seconds

Setelah claim secret itu sendiri valid, Checkout Session yang belum dibayar dijawab dengan wrong_state (4001), bukan agent_claim_invalid. Katalog lengkapnya adalah dokumen OpenAPI.

Batas

Panggilan dibatasi 1.200 per menit. Untuk akun agen, jatah itu milik akun, bukan token individual: setiap kredensial dalam garis rotasi memakai jatah yang sama, sehingga merotasi PAT tidak memberi penerusnya jatah baru. Panggilan penagihan PAT yang mencapai Stripe berbagi batas yang lebih ketat, 60 per menit per akun. Ini mencakup setup dan pembelian, perubahan kartu default dan penghapusan kartu, serta cache miss pada daftar kartu; pemeriksaan berjalan sebelum panggilan Stripe. Batas pembelian 24 jam di atas dihitung dengan cara yang sama, per akun dan bukan per kredensial.

Pelajari lebih lanjut

Halaman ini membahas siklus hidup akun: membukanya, mendanainya, dan menjaga kredensialnya tetap aktif. Untuk semua yang dapat dilakukan akun setelahnya, lihat REST API, termasuk dokumen OpenAPI lengkapnya, atau server MCP untuk akun yang sama lewat alat, bukan HTTP mentah.

Transkripsikan di aplikasi, atau beri agen Anda akun sendiri

Akun pribadi yang memenuhi syarat dapat menerima 30 menit gratis satu kali setelah verifikasi kartu berhasil, atau dengan pembelian pertamanya jika belum diberikan. Akun agen dimulai dengan paket menit yang dibeli saat pendaftaran.

Dapatkan 30 menit gratis