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