Gunakan alur kerja ini untuk membuat file subtitle dari video. Weydub mendukung dua jalur ekstraksi:
- Ekstraksi OCR untuk subtitle hardcode yang sudah terlihat dalam frame video.
- Ekstraksi ASR untuk dialog lisan dalam trek audio.
Ingin memeriksa kualitas keluaran sebelum mulai mengembangkan? Coba alur kerja web Weydub yang sesuai: Buat subtitle.
Untuk penjelasan tingkat sistem tentang Video OCR temporal, pemfilteran teks adegan, dan segmentasi ASR yang siap digunakan untuk subtitle, baca Pembuatan subtitle AI dengan Video OCR dan ASR.
Endpoint
POST /v-w-c/gateway/ve/work/freeEkstraksi subtitle bersifat asinkron. Simpan body.idProject dan body.dataList[].id, lalu gunakan Model tugas asinkron untuk polling, callback, perilaku percobaan ulang, dan penandatanganan callback.
Akses dan Batasan
| Aturan | Persyaratan |
|---|---|
| Akses akun | Akses API video inti harus diaktifkan. Ekstraksi OCR/ASR biasanya merupakan bagian dari kelompok tugas video, tetapi kebijakan akun tetap dapat membatasi ukuran batch atau opsi lanjutan. |
| Video sumber | Gunakan URL HTTPS publik yang stabil. Batas mutlak video saat ini adalah 15 menit per file dan 1000 MB per file. |
| Penagihan | Alur kerja video ditagih dalam unit 30 detik. Klip yang lebih pendek dari 30 detik dihitung sebagai 30 detik. |
| Tugas gagal | Jika processStatus > 1 pada hasil akhir, tidak ada kredit yang dipotong. |
| Retensi | File subtitle dan aset hasil render mengikuti aturan retensi web Weydub. Secara default, aset sumber/hasil render untuk 30 hari terakhir disimpan. Unduh salinan yang dapat disimpan dalam jangka panjang setelah callback. |
Pilih OCR atau ASR
| Mode | Kapan Digunakan | Sinyal Wajib | Keluaran Umum |
|---|---|---|---|
| Ekstraksi hard-sub OCR | Subtitle tertanam permanen dalam gambar, biasanya di bagian bawah frame. | needChineseOcclude: 14, videoInpaintMasks, videoInpaintLang, lang. | srcSrtUrl, tgtSrtUrl. |
| Ekstraksi ucapan ASR | Dialog tersedia dalam trek audio dan Anda memerlukan transkrip dengan penanda waktu. | needWanyin: 1, wyTaskType: "ONLY_ASR", wyNeedText: 0. | srcSrtUrl, tgtSrtUrl. |
Jangan gunakan OCR untuk mentranskripsikan video yang hanya berisi ucapan. Jangan gunakan ASR untuk membaca subtitle hardcode tanpa suara.
Payload Ekstraksi Subtitle OCR
Gunakan OCR jika subtitle sudah tertanam dalam gambar video.
{
"urls": ["https://example.com/video.mp4"],
"needChineseOcclude": 14,
"videoInpaintLang": "en",
"lang": "en",
"videoInpaintMasks": "[{\"type\":\"trans_only_ocr\",\"region\":[[0,0.8],[1,0.8],[1,1],[0,1]]}]",
"extraOptions": "{\"extra_inpaint_config\":{\"auto_correct_on\":false,\"strip_last_punct_on\":true,\"scene_filter_on\":false}}",
"callback": "https://your-domain.example/webhooks/weydub"
}Catatan:
needChineseOccludeharus bernilai14.videoInpaintMaskswajib untuk ekstraksi OCR dan harus berupa string JSON ringkas sebelum penandatanganan.typesebaiknya bernilaitrans_only_ocr.- Atur
langagar sama denganvideoInpaintLangjika terjemahan tidak diperlukan. - Koordinat dinormalisasi dari
0hingga1, dengan urutan kiri atas, kanan atas, kanan bawah, kiri bawah.
Mask OCR
Gunakan satu atau beberapa mask jika area subtitle yang terlihat sudah diketahui. Mask berbatas waktu membantu mencegah petunjuk alur cerita sementara atau teks registrasi diekstrak sebagai dialog.
| Kolom | Tipe | Wajib | Deskripsi |
|---|---|---|---|
type | string | Ya | Gunakan trans_only_ocr untuk ekstraksi subtitle OCR. |
region | array | Ya | Empat titik yang dinormalisasi: [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]. |
start | number | Tidak | Waktu mulai dalam detik. Jangan sertakan atau gunakan 0 jika mask berlaku sejak awal. |
end | number | Tidak | Waktu akhir dalam detik. Berguna jika mask hanya berlaku pada bagian pembuka. |
to_end | number | Tidak | Jumlah detik sebelum video berakhir. Utamakan end eksplisit jika diketahui. |
Area umum:
| Skenario | Area |
|---|---|
| Pita subtitle vertikal 16:9 | [[0,0.56],[1,0.56],[1,0.76],[0,0.76]] |
| Area subtitle horizontal standar | [[0,0.8],[1,0.8],[1,1],[0,1]] |
| Pita bawah kustom | [[0,0.7],[1,0.7],[1,0.95],[0,0.95]] |
Opsi OCR
extraOptions.extra_inpaint_config dapat menyesuaikan pembersihan OCR:
| Opsi | Tipe | Deskripsi |
|---|---|---|
auto_correct_on | boolean | Menentukan apakah teks subtitle yang dikenali akan dikoreksi secara otomatis. |
strip_last_punct_on | boolean | Menentukan apakah tanda baca di akhir setiap baris subtitle akan dihapus. |
scene_filter_on | boolean | Menentukan apakah teks adegan non-dialog akan difilter. Opsi ini sering dinonaktifkan untuk ekstraksi subtitle bahasa Inggris dan bahasa non-CJK lainnya jika Anda menginginkan semua teks subtitle yang terlihat. |
Pertahankan extraOptions sebagai string JSON ringkas untuk payload API publik, kecuali kontrak akun Anda menetapkan lain.
Payload Ekstraksi Subtitle ASR
Gunakan ASR jika video berisi ucapan dan Anda memerlukan transkrip dengan penanda waktu.
{
"urls": ["https://example.com/video.mp4"],
"needWanyin": 1,
"sourceLang": "en",
"lang": "en",
"wyTaskType": "ONLY_ASR",
"needWyEdit": 0,
"wyNeedText": 0,
"extraOptions": "{\"asr_speaker_detect_on\":true,\"extra_video_translate_config\":{\"remove_last_punct_on\":true}}",
"callback": "https://your-domain.example/webhooks/weydub"
}Catatan:
wyTaskTypeharus bernilaiONLY_ASR.wyNeedText: 0berarti subtitle tidak dirender ke dalam video baru.needWyEdit: 0menonaktifkan perilaku pengeditan manual/pro-draft untuk tugas ekstraksi ini.sourceLangadalah bahasa lisan.langadalah bahasa keluaran subtitle; gunakan kode yang sama jika terjemahan tidak diperlukan.
Opsi ASR
| Opsi | Tipe | Deskripsi |
|---|---|---|
asr_speaker_detect_on | boolean | Mengaktifkan deteksi pembicara jika didukung. Berguna untuk dialog dengan beberapa pembicara. |
extra_video_translate_config.remove_last_punct_on | boolean | Menghapus tanda baca di akhir baris subtitle yang dihasilkan. |
Parameter
| Parameter | OCR | ASR | Deskripsi |
|---|---|---|---|
urls | Wajib | Wajib | URL video publik. Gunakan URL HTTPS yang stabil dalam produksi. |
needChineseOcclude | 14 | Tidak digunakan | Mode ekstraksi subtitle OCR. |
videoInpaintLang | Wajib | Tidak digunakan | Bahasa teks subtitle yang terlihat. |
videoInpaintMasks | Wajib | Tidak digunakan | String JSON ringkas yang menjelaskan area OCR. |
extraOptions | Opsional | Opsional | String JSON ringkas untuk pembersihan OCR atau opsi ASR. |
needWanyin | Tidak digunakan | 1 | Mengaktifkan pemrosesan ucapan untuk ASR. |
sourceLang | Opsional | Wajib | Bahasa lisan/sumber. |
lang | Wajib | Wajib | Bahasa keluaran subtitle. Gunakan nilai yang sama dengan sumber jika terjemahan tidak diperlukan. |
wyTaskType | Tidak digunakan | ONLY_ASR | Jenis tugas khusus ASR. |
needWyEdit | Tidak digunakan | 0 | Menonaktifkan alur pengeditan manual/pro-draft untuk ekstraksi. |
wyNeedText | Tidak digunakan | 0 | Jangan render subtitle ke dalam video baru. |
callback | Opsional | Opsional | URL webhook untuk penyelesaian asinkron. |
uid | Opsional | Opsional | Pengidentifikasi pengguna/pelanggan Anda jika akun Anda menggunakan pelacakan subpengguna. |
Keluaran
Tugas ekstraksi yang berhasil dapat mengembalikan:
srcSrtUrltgtSrtUrlprocessStatusprocessProgresspaidPoint- metadata tugas dalam item pekerjaan yang dikembalikan
Ekstraksi OCR dan ASR tidak perlu merender video baru. Lakukan polling hingga processStatus === 1 sebelum membaca srcSrtUrl atau tgtSrtUrl.
Callback mengirimkan payload item pekerjaan secara langsung, tanpa pembungkus luar code / msg / body yang digunakan oleh respons polling.
Catatan Agen
- Pilih OCR untuk teks subtitel yang tertanam permanen; pilih ASR untuk dialog lisan.
- Pastikan
videoInpaintMasksdanextraOptionstetap ringkas dan diserialisasi sebagai string sebelum penandatanganan. - Jangan kirim array mask OCR sebagai array native kecuali kontrak akun Anda menyatakan demikian.
- Gunakan kueri enum (
POST /v-w-c/enum/query2) untuk mengambil dukungansourceLangdanLangsaat ini; endpoint enum ini tidak memerlukan penandatanganan. - Lakukan polling hingga
processStatusbernilai1sebelum membacasrcSrtUrlatautgtSrtUrl. - Simpan file subtitel sebelum proses pembersihan retensi.