Hushscript 的自動轉錄會將現有錄音轉為可編輯的逐字稿。在瀏覽器應用程式中,您也可以從本機影片開始:Hushscript 會在您的裝置上準備音訊,並僅傳送該音訊進行線上辨識。您需自行審閱與修正結果;這並非提供人工校對或認證的轉錄服務。
自動逐字稿的運作方式
- 準備錄音。 使用音訊檔案、匯入支援的音訊連結,或在瀏覽器應用程式中錄下您的聲音。對於錄影檔案,請選擇本機檔案,讓應用程式在您的裝置上準備音訊。
- 提交並等待逐字稿。 應用程式會處理上傳與狀態查詢。代理程式可透過 REST API 分段上傳準備好的音訊,或使用受權限範圍限制的 MCP 工具,接著查詢工作狀態,直到逐字稿完成。
- 審閱與匯出。 在應用程式中編輯逐字稿與說話者標籤,或透過 API 取得文字。代理程式的權杖也可在獲授的權限範圍內匯出逐字稿。
音訊與影片的自動逐字稿軟體
Hushscript 的自動轉錄軟體會將錄製的語音轉為可搜尋、編輯與匯出的文字。應用程式的錄音入口也讓您在轉錄前錄下聲音。如果您只需要獨立的錄音檔案而不需轉錄,請使用免費語音錄音機。
自動影片轉錄會在應用程式於本機擷取或轉換音訊後,進入相同的文字工作流程。下方的 REST 上傳範例從準備好的音訊開始;若要將本機影片檔案交給應用程式,請使用影片轉文字的瀏覽器工作流程。
免費自動逐字稿試用
可以。公開預覽讓您在登入前,從單一檔案、支援的音訊連結或瀏覽器錄音轉錄最長 5 分鐘;本機影片也可在瀏覽器準備好音訊後使用。完整轉錄需要帳戶:符合資格的個人帳戶在卡片驗證後可獲得 30 分鐘免費額度(運作方式請見定價),機器帳戶則不提供歡迎分鐘,而是以註冊時購買的套餐開始使用。
透過 API 或 MCP 執行逐字稿自動化
瀏覽器應用程式用於直接處理錄音。若要自動化逐字稿工作,REST API與 MCP 伺服器讓代理程式上傳準備好的音訊、查詢工作、取得逐字稿與匯出結果。代理程式可透過付款優先的流程,自行開設帳戶,無需人類帳戶持有人;託管的結帳頁面仍需瀏覽器,發卡機構也可能要求驗證步驟。個人使用者也可以在應用程式中,從現有帳戶建立具有限定權限範圍的權杖。本示範說明機器帳戶從註冊到憑證輪替的流程。
註冊
POST /v1/agent/accounts 會開啟一次無人值守的註冊。此時尚無帳戶、無 Cookie,也無權杖,只有一筆待處理的購買。
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 僅用於收據與通知,絕不作為登入方式。pack_id 必須是 45min、300min、900min、1800min、6000min 其中之一;切勿自行傳送 amount 或 currency,兩者都由伺服器依套餐自動推算。註冊時只能購買兩個最小的套餐,45min 與 300min。指定較大的 pack_id 會遭拒絕,拒絕回應會附上 details.allowed_packs,列出此帳戶目前可以購買的項目,讓呼叫端無須猜測即可重試。其餘等級則依已結算款項經過的時間解鎖,而非隨消費量解鎖,詳見下方的 新帳戶可購買的內容。
accept_terms_version 必須與伺服器目前的政策版本完全一致,否則呼叫會以 policy_version_stale 失敗,並在回應內容中指出目前的版本值。選填的 data_region 提示,只有在與您網路位置已隱含的區域一致時才會被採用。選填的 dry_run: true 會驗證所有內容,但不會建立 Stripe 工作階段,也不會產生任何收費;其 signup_id 會以 dry_ 開頭,且永遠無法被認領。
claim_secret 只會在此回應中顯示一次,Hushscript 僅儲存其雜湊值。若在呼叫認領之前遺失它,就等於失去這次註冊:認領密鑰沒有復原途徑。已付款但尚未認領的註冊會進入下方說明的退款流程,無法透過查詢復原。
在您自己的瀏覽器中完成結帳
checkout_url 是託管的 Stripe Checkout 頁面。註冊的這一步需要瀏覽器,但不必是人類使用的瀏覽器:代理程式可以用自己的自動化工具操作它(填入卡片欄位、送出、跟隨重新導向)。無論如何,Hushscript 都不會看到卡片明細,Stripe 才會。完成此步驟並接著認領的時限是 30 分鐘,也就是上方的 expires_at。
每小時執行一次的掃描,會在 30 分鐘認領期限結束且再經過 1 小時寬限期後,檢查已付款但尚未認領的註冊。掃描會嘗試全額退款,因為分鐘數只會在認領時才會計入餘額。退款失敗時會重試,且可能需要人工處理;退款不保證在特定時間到帳。
認領帳戶
POST /v1/agent/accounts/{signup_id}/claim 會在一次呼叫中,將已付款但尚未認領的註冊轉為真正的帳戶。
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
}
認領動作會建立恰好 1 個帳戶,背後對應一個合成且無法解析的登入身分,無論請求被重試多少次,都只會授予 1 次已付款的套餐。它會產生 1 個 PAT:也就是上方的 pat 值。
若回應遺失,請使用相同的 claim_secret 再次呼叫。在認領後 1 小時內,且所發出的權杖從未被使用過時,重試會針對同一個帳戶回傳 201,回應格式相同,並附上全新的 pat。遺失的權杖會失效。權杖首次使用之後,或超過該 1 小時之後,重試會回應 agent_claim_invalid。若重試與仍在執行中的認領重疊,可能會收到 429 rate_limited 並附帶 Retry-After 標頭;請在該延遲之後再重試。
首個權杖可轉錄、讀取與編輯逐字稿、匯出、讀取帳戶餘額、購買分鐘數及輪替自身。它不會授予 Insights、內容背景、組織或設定寫入的權限範圍。MCP 伺服器只會提供權杖權限範圍涵蓋的工具。
無論是密鑰錯誤、signup_id 不存在、註冊已退款、已過期,或是重複認領時權杖已被使用或已超過 1 小時,都會回傳同一個 agent_claim_invalid 錯誤。呼叫端無法從回應內容分辨究竟是哪一種情況,這是刻意的設計。只有在密鑰本身驗證通過之後,付款狀態才會被納入考量:尚未結算的 Checkout Session 會改為回傳 wrong_state。
上方的 balance_seconds 就是全部的起始餘額。代理程式帳戶不會像一般人的首個帳戶那樣獲得歡迎獎勵,也不會因卡片驗證而取得免費分鐘數;帳戶一開始只有已付款的那個套餐,別無其他。這是刻意的設計,而不是缺漏:這個帳戶在存在之前就已經付過款了。
購買更多分鐘數
從這裡開始,帳戶會使用 /v1/ 介面,/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
}
這需要 billing 權限範圍,上方的認領回應已經授予了這項權限。認領也會啟用權杖與帳戶的帳務操作權限;個人使用者建立的權杖則需要 billing 權限範圍,且兩個帳務操作開關都必須啟用。呼叫 Stripe 的各條帳務路由共用每個帳戶每分鐘 60 次 PAT 帳務請求的較嚴格限制,並在送出 Stripe 請求之前檢查。
新帳戶可購買的內容
套餐大小的解鎖依據是已結算款項的存續時間,而不是帳戶花費的金額。一筆購買要等到超過其付款日期 7 天 之後,才會計入下一個等級,因此全新的帳戶無法靠快速購買就達到較大的套餐。
| 超過 7 天的已結算款項 | 可購買的套餐 |
|---|---|
| 尚無任何款項,包括剛完成的認領 | 45min、300min |
| 至少 45 分鐘的金額 | 新增 900min、1800min |
| 至少 15 小時的金額 | 新增 6000min |
遭拒絕的購買會在 details.allowed_packs 中列出目前允許的組合,而不是毫無說明地失敗。註冊呼叫套用的是這張表的第一列,這也是為什麼上方的示範購買的是 300min 而不是更大的套餐。除了等級制度,滾動 24 小時的消耗上限也會限制尚未超過爭議期限的餘額能被花費的速度。註冊購買會計入帳戶每個滾動 24 小時內最多 3 次購買嘗試的上限;預留購買名額後遭拒的嘗試也會計入。
逐字稿
上傳與轉錄的流程,與其他帳戶所使用的分段(multipart)流程相同。此 API 範例提交的是準備好的音訊,並不會上傳本機影片的來源檔案。
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 將每個分段上傳至各自的預先簽署網址,再以 POST 呼叫同一工作的 /complete,並附上以此方式送出的每個分段的 n 與 etag。接著輪詢該工作:
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": "..."
}
輪替權杖
機器帳戶沒有密碼,也沒有可用的信箱,因此當 PAT 外洩或只是單純需要更換時,並不存在「忘記密碼」這條路徑。輪替就是這條路徑。
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
}
此呼叫不需要任何請求主體。它會為用來驗證此次請求的權杖產生一個後繼權杖。後繼權杖會保留前一個權杖的權限範圍、帳務操作權限、名稱、用戶端標籤與到期政策。此路由只會影響呼叫端自己的權杖:無法列出、產生或撤銷帳戶上的任何其他權杖。這是機器帳戶唯一的憑證復原途徑,因此請在捨棄舊權杖之前先完成輪替,而不是之後。
舊權杖不會立即被撤銷。輪替之後,它只能用於一件事:再次呼叫輪替。這會持續到新權杖第一次成功送出請求,或經過 1 小時為止,以先到者為準。在其他所有路由上,舊權杖會立即回應 401。
若載有新權杖的回應遺失,請在新權杖尚未使用時,以舊權杖再次呼叫輪替。您會取得同一個 pat_id 的全新密鑰,先前的新密鑰會失效。
請保留舊權杖,直到新權杖成功運作過一次。接著立即以新權杖發出一次呼叫,例如 GET /v1/account。該次首度成功的請求會讓舊權杖永久退役。
錯誤
| 狀態碼 | 代碼 | 代稱 | 意義 |
|---|---|---|---|
| 401 | 2000 | unauthorized |
缺少或無效的持有者權杖 |
| 403 | 2023 | pat_scope_missing |
權杖缺少此呼叫所需的權限範圍,或帳戶已關閉帳務操作 |
| 403 | 4021 | pat_purchase_requires_app |
未指定已儲存的卡片,或扣款遭拒;未產生任何收費 |
| 403 | 4023 | pat_purchase_requires_authentication |
發卡機構要求呼叫端無法完成的驗證挑戰;卡片本身沒有問題 |
| 402 | 3001 | insufficient_balance |
餘額不足以受理此工作 |
| 429 | 5000 | rate_limited |
請求過多;請依 Retry-After 等待 |
這些錯誤涵蓋代理程式註冊與購買控制。購買上限也適用於人類帳戶的 PAT 購買;透過人類使用者工作階段進行的購買則不受此上限限制。
| 狀態碼 | 代碼 | 代稱 | 意義 |
|---|---|---|---|
| 409 | 4035 | agent_signup_pending |
這個 contact_email 已有一筆尚未結束的註冊。請等待它被認領、退款或過期,或改用其他電子郵件地址 |
| 401 | 4036 | agent_claim_invalid |
密鑰錯誤、註冊不存在、已退款、已過期,或已被認領但權杖已被使用或已超過 1 小時。刻意設計為完全相同 |
| 403 | 4037 | agent_pack_locked |
此帳戶目前的等級尚不允許購買該套餐。回應會附上 details.allowed_packs;請改用其中一個套餐重試 |
| 429 | 4038 | agent_purchase_capped |
過去 24 小時內已有 3 次購買嘗試,包含預留購買名額後的失敗嘗試與代理程式帳戶的註冊購買。此計數以帳戶為單位,跨憑證合計,因此輪替不會重設計數。回應會附上 details.retry_after_seconds |
一旦密鑰本身驗證通過,尚未付款的 Checkout Session 會回傳 wrong_state(4001),而不是 agent_claim_invalid。完整目錄請見 OpenAPI 文件。
限制
呼叫次數限制為每分鐘 1,200 次。對代理程式帳戶而言,這個額度屬於整個帳戶,而不是個別的權杖:輪替譜系中的每一個權杖都共用同一份額度,因此輪替 PAT 並不會為後繼權杖帶來全新的額度。會呼叫 Stripe 的 PAT 帳務請求共用每個帳戶每分鐘 60 次的較嚴格限制。這包含卡片設定與購買、預設卡片變更與移除,以及卡片清單快取未命中的情況;檢查會在呼叫 Stripe 之前執行。上方提到的 24 小時購買上限,同樣是以帳戶為單位計算,而不是以權杖為單位。
深入了解
本頁涵蓋的是帳戶的生命週期:開設帳戶、為帳戶儲值,以及維持其權杖的有效性。至於這個帳戶接下來能做的所有事情,請見 REST API(包含完整的 OpenAPI 文件),或改用 MCP 伺服器,以工具而非原始 HTTP 的方式操作同一個帳戶。