Usa este flujo de trabajo para crear archivos de subtítulos a partir de un video. Weydub admite dos vías de extracción:
- Extracción mediante OCR para subtítulos incrustados que ya son visibles en el fotograma del video.
- Extracción mediante ASR para diálogos hablados en la pista de audio.
¿Quieres inspeccionar la calidad de la salida antes de crear una integración? Prueba el flujo web correspondiente de Weydub: Generar subtítulos.
Para conocer la explicación a nivel de sistema del OCR temporal de video, el filtrado de texto de escenas y la segmentación ASR preparada para subtítulos, lee Generación de subtítulos con OCR de video y ASR.
Endpoint
POST /v-w-c/gateway/ve/work/freeLa extracción de subtítulos es asíncrona. Guarda body.idProject y body.dataList[].id, y después usa el modelo de tareas asíncronas para la consulta periódica, los callbacks, el comportamiento de reintento y la firma de callbacks.
Acceso y límites
| Regla | Requisito |
|---|---|
| Acceso de la cuenta | El acceso a la API de video principal debe estar habilitado. La extracción OCR/ASR suele formar parte de la familia de tareas de video, pero la política de la cuenta aún puede limitar el tamaño de los lotes o las opciones avanzadas. |
| Video de origen | Usa una URL HTTPS pública y estable. Los límites máximos actuales son 15 minutos por archivo y 1000 MB por archivo. |
| Facturación | Los flujos de video se facturan en unidades de 30 segundos. Los clips de menos de 30 segundos cuentan como 30 segundos. |
| Tarea fallida | Cuando se cumple la condición final processStatus > 1, no se descuentan créditos. |
| Retención | Los archivos de subtítulos y los recursos renderizados siguen las reglas de retención web de Weydub. De forma predeterminada, se conservan los recursos de origen y renderizados de los últimos 30 días. Descarga copias duraderas después del callback. |
Elige OCR o ASR
| Modo | Úsalo cuando | Señal requerida | Salida habitual |
|---|---|---|---|
| Extracción OCR de subtítulos incrustados | Los subtítulos están incrustados en la imagen, normalmente en la parte inferior del fotograma. | needChineseOcclude: 14, videoInpaintMasks, videoInpaintLang, lang. | srcSrtUrl, tgtSrtUrl. |
| Extracción ASR del habla | Hay diálogo en la pista de audio y necesitas una transcripción sincronizada. | needWanyin: 1, wyTaskType: "ONLY_ASR", wyNeedText: 0. | srcSrtUrl, tgtSrtUrl. |
No uses OCR para transcribir videos que solo contienen habla. No uses ASR para leer subtítulos incrustados en videos sin diálogo.
Carga útil de extracción OCR
Usa OCR cuando los subtítulos ya estén incrustados en la imagen del 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"
}Notas:
needChineseOccludedebe ser14.videoInpaintMaskses obligatorio para la extracción OCR y debe ser una cadena JSON compacta antes de firmar.typedebe sertrans_only_ocr.- Establece
langigual avideoInpaintLangcuando no se necesite traducción. - Las coordenadas están normalizadas de
0a1y ordenadas como esquina superior izquierda, esquina superior derecha, esquina inferior derecha y esquina inferior izquierda.
Máscaras OCR
Usa una o más máscaras cuando conozcas el área visible de los subtítulos. Las máscaras delimitadas por tiempo ayudan a evitar la extracción de indicios temporales de la trama o texto de registro como si fueran diálogos.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type | string | Sí | Usa trans_only_ocr para la extracción OCR de subtítulos. |
region | array | Sí | Cuatro puntos normalizados: [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]. |
start | number | No | Tiempo inicial en segundos. Omítelo o usa 0 cuando la máscara se aplique desde el principio. |
end | number | No | Tiempo final en segundos. Es útil cuando una máscara solo se aplica a la introducción. |
to_end | number | No | Segundos antes del final del video. Prefiere un end explícito cuando se conozca. |
Regiones habituales:
| Escenario | Región |
|---|---|
| Banda de subtítulos verticales 16:9 | [[0,0.56],[1,0.56],[1,0.76],[0,0.76]] |
| Área de subtítulos horizontal estándar | [[0,0.8],[1,0.8],[1,1],[0,1]] |
| Banda inferior personalizada | [[0,0.7],[1,0.7],[1,0.95],[0,0.95]] |
Opciones de OCR
extraOptions.extra_inpaint_config permite ajustar la limpieza del OCR:
| Opción | Tipo | Descripción |
|---|---|---|
auto_correct_on | boolean | Indica si se debe corregir automáticamente el texto de subtítulos reconocido. |
strip_last_punct_on | boolean | Indica si se debe eliminar la puntuación final de cada línea de subtítulos. |
scene_filter_on | boolean | Indica si se debe filtrar el texto de escenas que no sea diálogo. Suele desactivarse para la extracción de subtítulos en inglés y otros idiomas no CJK cuando quieres todo el texto visible de los subtítulos. |
Mantén extraOptions como una cadena JSON compacta en las cargas útiles de la API pública, salvo que el contrato de tu cuenta indique lo contrario.
Carga útil de extracción ASR
Usa ASR cuando el video contenga habla y necesites una transcripción sincronizada.
{
"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"
}Notas:
wyTaskTypedebe serONLY_ASR.wyNeedText: 0significa que no se deben renderizar subtítulos en un video nuevo.needWyEdit: 0desactiva el comportamiento de edición manual/borrador profesional para esta tarea de extracción.sourceLanges el idioma hablado.langes el idioma de salida de los subtítulos; usa el mismo código cuando no se necesite traducción.
Opciones de ASR
| Opción | Tipo | Descripción |
|---|---|---|
asr_speaker_detect_on | boolean | Activa la detección de hablantes cuando es compatible. Es útil para diálogos con varios hablantes. |
extra_video_translate_config.remove_last_punct_on | boolean | Elimina la puntuación final de las líneas de subtítulos generadas. |
Parámetros
| Parámetro | OCR | ASR | Descripción |
|---|---|---|---|
urls | Obligatorio | Obligatorio | URL públicas de videos. Usa URL HTTPS estables en producción. |
needChineseOcclude | 14 | No se usa | Modo de extracción OCR de subtítulos. |
videoInpaintLang | Obligatorio | No se usa | Idioma del texto de subtítulos visible. |
videoInpaintMasks | Obligatorio | No se usa | Cadena JSON compacta que describe las regiones OCR. |
extraOptions | Opcional | Opcional | Cadena JSON compacta para la limpieza OCR o las opciones ASR. |
needWanyin | No se usa | 1 | Activa el procesamiento del habla para ASR. |
sourceLang | Opcional | Obligatorio | Idioma hablado/de origen. |
lang | Obligatorio | Obligatorio | Idioma de salida de los subtítulos. Usa el mismo valor que el origen cuando no se necesite traducción. |
wyTaskType | No se usa | ONLY_ASR | Tipo de tarea exclusiva de ASR. |
needWyEdit | No se usa | 0 | Desactiva el flujo de edición manual/borrador profesional para la extracción. |
wyNeedText | No se usa | 0 | No renderiza subtítulos en un video nuevo. |
callback | Opcional | Opcional | URL del webhook para la finalización asíncrona. |
uid | Opcional | Opcional | Identificador de usuario/cliente cuando tu cuenta usa seguimiento de subusuarios. |
Resultados
Las tareas de extracción completadas correctamente pueden devolver:
srcSrtUrltgtSrtUrlprocessStatusprocessProgresspaidPoint- metadatos de la tarea dentro del elemento de trabajo devuelto
La extracción OCR y ASR no necesita renderizar un video nuevo. Consulta periódicamente hasta que processStatus === 1 antes de leer srcSrtUrl o tgtSrtUrl.
Los callbacks envían directamente la carga útil del elemento de trabajo, sin el envoltorio externo code / msg / body que usan las respuestas de consulta periódica.
Notas para agentes
- Elige OCR para texto de subtítulos incrustados; elige ASR para diálogos hablados.
- Mantén
videoInpaintMasksyextraOptionscompactos y convertidos en cadenas antes de firmar. - No envíes las matrices de máscaras OCR como matrices nativas salvo que el contrato de tu cuenta lo indique.
- Usa la consulta de enumeraciones (
POST /v-w-c/enum/query2) para obtener la compatibilidad actual desourceLangyLang; este endpoint de enumeración no requiere firma. - Consulta periódicamente hasta que
processStatussea1antes de leersrcSrtUrlotgtSrtUrl. - Guarda los archivos de subtítulos antes de la limpieza por retención.