เริ่มต้นใช้งาน (Quickstart)

สร้างซับไตเติลแรกของคุณภายในไม่กี่นาที — ขั้นตอนทั้งหมดมีเพียง ส่งงาน → รอสถานะ → ดาวน์โหลดผลลัพธ์

สิ่งที่ต้องมี

  1. API key — ติดต่อทีม Loma เพื่อขอรับ API key แล้วเก็บไว้ในตัวแปรสภาพแวดล้อม

    export LOMA_API_SECRET_KEY="<your-api-key>"
    
  2. URL ไฟล์เสียง — ไฟล์เสียงหรือวิดีโอที่เข้าถึงได้แบบสาธารณะ (HTTP/HTTPS) เช่นไฟล์ตัวอย่างนี้

    https://lomafastsrt.sgp1.cdn.digitaloceanspaces.com/cancer.mp3
    

ขั้นตอนที่ 1 — ส่งงานถอดเสียง

เรียก POST /new-transcribe พร้อม URL ของไฟล์เสียง

curl -X POST "https://api.lomasub.ai/new-transcribe" \
  -H "Authorization: Bearer $LOMA_API_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_url": "https://lomafastsrt.sgp1.cdn.digitaloceanspaces.com/cancer.mp3",
    "language": "th"
  }'

ระบบตอบกลับ 201 Created พร้อม job_id สำหรับติดตามงาน

{
  "job_id": "0b8a4f3e-6c1d-4a9b-9f2e-7d5c3b1a8e64",
  "status_url": "https://api.lomasub.ai/status?job_id=0b8a4f3e-6c1d-4a9b-9f2e-7d5c3b1a8e64",
  "state": "QUEUED",
  "s1_queued_ts": "2026-07-10T09:15:22.481Z"
}

ขั้นตอนที่ 2 — ตรวจสอบสถานะจนเสร็จ

เรียก GET /status ด้วย job_id ที่ได้รับ (แนะนำให้ poll ทุก ~1 วินาที)

curl "https://api.lomasub.ai/status?job_id=0b8a4f3e-6c1d-4a9b-9f2e-7d5c3b1a8e64" \
  -H "Authorization: Bearer $LOMA_API_SECRET_KEY"

ค่า state จะเปลี่ยนไปตามขั้นตอนการประมวลผล เช่น QUEUED → SPLITTING → TRANSCRIBING → ALIGNING → ... → READY

เมื่อ state เป็น READY ผลลัพธ์จะมีลิงก์ดาวน์โหลดเพิ่มเข้ามา

{
  "job_id": "0b8a4f3e-6c1d-4a9b-9f2e-7d5c3b1a8e64",
  "state": "READY",
  "audio_duration_seconds": 213.4,
  "srt_url": "https://...presigned.../jobs/0b8a4f3e-.../result.srt?...",
  "vtt_url": "https://...presigned.../jobs/0b8a4f3e-.../result.vtt?...",
  "compact_url": "https://...presigned.../jobs/0b8a4f3e-.../result.compact.txt?..."
}

ขั้นตอนที่ 3 — ดาวน์โหลดซับไตเติล

curl -o result.srt "<srt_url จากขั้นตอนที่ 2>"

เพียงเท่านี้คุณก็ได้ไฟล์ .srt พร้อมใช้งาน 🎉

ตัวอย่างสคริปต์ Python แบบครบวงจร

ตัวอย่างนี้ใช้เฉพาะ Python standard library — ส่งงาน รอจนเสร็จ แล้วบันทึกไฟล์ .srt

import json
import os
import time
import urllib.request

API_BASE = "https://api.lomasub.ai"
API_KEY = os.environ["LOMA_API_SECRET_KEY"]
AUDIO_URL = "https://lomafastsrt.sgp1.cdn.digitaloceanspaces.com/cancer.mp3"


def call_api(path, payload=None):
    url = f"{API_BASE}{path}"
    data = json.dumps(payload).encode() if payload is not None else None
    req = urllib.request.Request(url, data=data, method="POST" if data else "GET")
    req.add_header("Authorization", f"Bearer {API_KEY}")
    if data:
        req.add_header("Content-Type", "application/json")
    with urllib.request.urlopen(req) as resp:
        return json.loads(resp.read())


# 1) ส่งงานถอดเสียง
job = call_api("/new-transcribe", {"source_url": AUDIO_URL, "language": "th"})
job_id = job["job_id"]
print("job created:", job_id)

# 2) ตรวจสอบสถานะทุก 1 วินาทีจนกว่าจะเสร็จ
while True:
    status = call_api(f"/status?job_id={job_id}")
    state = status["state"]
    print("state:", state)
    if state in ("READY", "FAILED"):
        break
    time.sleep(1.0)

# 3) ดาวน์โหลดผลลัพธ์
if state == "READY":
    urllib.request.urlretrieve(status["srt_url"], "result.srt")
    print("saved result.srt")
else:
    print("job failed at:", status.get("failed_stage"), "-", status.get("error"))

เปิดตัวเลือกเสริมตอนส่งงาน

ปรับพฤติกรรมการถอดเสียงได้ผ่านฟิลด์ config เช่น เปิดการระบุผู้พูด

{
  "source_url": "https://lomafastsrt.sgp1.cdn.digitaloceanspaces.com/cancer.mp3",
  "language": "th",
  "config": {
    "speaker_diarization": true,
    "srt_target_chars": 40
  }
}

ดูตัวเลือกทั้งหมดได้ที่ สร้างงานถอดเสียง — POST /new-transcribe

มีไฟล์อยู่ในเครื่อง ไม่มี URL สาธารณะ? ใช้ POST /presigned-url เพื่อขอลิงก์อัปโหลดชั่วคราวก่อน — ระบบจะตอบกลับ upload_url สำหรับ PUT ไฟล์ขึ้นไป และ source_url สำหรับนำมาใช้ส่งงานในขั้นตอนที่ 1 ได้ทันที

results matching ""

    No results matching ""