Generar una miniatura de vista previa
🤖/file/preview genera una miniatura para cualquier archivo subido para previsualizar su contenido, similar a las miniaturas en los administradores de archivos de escritorio.

El propósito del Robot es generar una imagen de vista previa significativa para cualquier archivo, de modo que la miniatura resultante destaque el contenido del archivo. El objetivo no es presentar el medio original sin pérdidas en un tamaño más pequeño, sino maximizar la probabilidad de que una persona reconozca el medio de un vistazo, con un resultado visualmente agradable y coherente con otras vistas previas. El proceso de generación depende del tipo de archivo. Por ejemplo, el Robot puede extraer carátulas de archivos multimedia y fotogramas de videos, generar una forma de onda para archivos de audio y crear vistas previas del contenido de documentos e imágenes. El parámetro strategy enumera las estrategias disponibles y controla su orden de respaldo.
Con la configuración de estrategias predeterminada, se usa un icono genérico como respaldo cuando no se puede generar una miniatura específica del archivo. El estilo de icono predeterminado with-text incluye la extensión del archivo; icon_style y icon_text_content controlan su apariencia.
Los parámetros predeterminados producen vistas previas estáticas con las dimensiones y el formato configurados para integrarlas en la interfaz de tu aplicación. La estrategia opcional clip produce vistas previas animadas mediante clip_format. Las imágenes de vista previa se optimizan de forma predeterminada para reducir su tamaño de archivo manteniendo la calidad visual.
Ejemplo de uso
Genera una miniatura de vista previa para cualquier archivo subido:
{
"steps": {
"previewed": {
"format": "png",
"height": 400,
"robot": "/file/preview",
"use": ":original",
"width": 300
}
}
}Parámetros
interpolateboolean | Record<string, boolean>Controla si las Assembly Variables se interpolan en campos de instrucciones individuales.
De forma predeterminada, la mayoría de los campos de instrucciones de los Robots interpolan Assembly Variables. Establece esta opción en
falsepara tratar todos los campos de instrucciones como texto literal, o establece la ruta de un campo individual enfalsepara tratar únicamente ese campo como texto literal. En el caso de los campos específicos de un Robot que son literales de forma predeterminada, establece esta opción entrueo la ruta de ese campo entruepara volver a habilitar la interpolación.Usa nombres de campos como
patho rutas con puntos comoffmpeg.vfpara los objetos anidados.output_metaRecord<string, boolean> | boolean | Array<string>Te permite especificar un conjunto de metadatos cuyo cálculo requiere más recursos de CPU y que, por lo tanto, está desactivado de forma predeterminada para mantener el procesamiento de tus Assemblies rápido.
Para imágenes, puedes añadir
"has_transparency": trueen este objeto para extraer si la imagen contiene partes transparentes y"dominant_colors": truepara extraer un array de códigos de color hexadecimales de la imagen.Para imágenes, también puedes añadir
"blurhash": truepara extraer una cadena BlurHash, una representación compacta de un marcador de posición para la imagen que resulta útil para mostrar una vista previa desenfocada mientras se carga la imagen completa.Para imágenes,
"thumbhash": trueextrae en su lugar un ThumbHash codificado en base64 enmeta.thumbhash, junto conmeta.has_alpha(si existe un canal alfa, incluso cuando es totalmente opaco). Describe píxeles orientados según EXIF y usa el primer fotograma en el caso de imágenes animadas. La extracción se realiza según el mejor esfuerzo posible: las imágenes de más de 40 megapíxeles, los formatos no compatibles o una decodificación fallida o limitada no generan ningún marcador de posición. Una extracción exitosa añade un cargo de metadatos equivalente al 20 % de los bytes de ese archivo. No se aplica ningún recargo por ThumbHash cuando está desactivado o cuando no se genera ningún hash.Configura esta opción en el Step que genera la imagen, como
/upload/handlepara los originales subidos o/image/resizepara las salidas procesadas. Configurarla únicamente en/transloadit/storeno solicita la extracción: el almacenamiento conserva los metadatos del Step que generó la imagen. Transloadit Storage conserva un hash generado junto con su versión inmutable y lo devuelve en los resultados almacenados y en las lecturas nativas de activos. Las subidas directas a S3 no generan marcadores de posición. Un marcador de posición contiene información de la imagen, por lo que debes protegerlo con los mismos controles de acceso que la imagen completa.Para videos, puedes añadir el parámetro
"colorspace": truepara extraer el espacio de color del video de salida.Para videos, también puedes añadir
"interlaced": truepara detectar si el video está entrelazado. Esto combina el indicadorfield_orderde ffprobe, cuyo costo computacional es bajo, con una pasada de muestreo limitada medianteidetsobre los primeros fotogramas de la fuente, y exponeinterlaced,field_ordery un objeto de diagnósticointerlace_detectionenfile.meta. Esto requiere muchos recursos computacionales y se factura en consecuencia.Para audio, puedes añadir
"mean_volume": truepara obtener un único valor que represente el volumen promedio del archivo de audio.También puedes establecer esto en
falsepara omitir la extracción de metadatos y acelerar la transcodificación.user_metaRecord<string, any>(valor predeterminado:{})Añade metadatos JSON personalizados a cada archivo emitido sin modificar su contenido. Se admiten objetos y arrays anidados.
La herencia depende del Robot. Los valores se combinan con los
user_metaexistentes en el archivo de salida; el Step actual reemplaza las claves coincidentes de nivel superior. Asigna explícitamente las claves necesarias cuando un Robot cree nuevos archivos de salida.En los Steps de procesamiento,
${file.*}hace referencia a la primera entrada y${result.*}al archivo emitido. Los valores se evalúan para cada salida después de ejecutarse el Robot, antes de la posterior extracción de metadatos y del almacenamiento temporal. En:original, los valores se evalúan para cada subida antes de la extracción de metadatos.Los Steps posteriores leen
${file.user_meta.key}. Consulta Metadatos personalizados para ver un ejemplo completo y las reglas de herencia.resultboolean(valor predeterminado:false)Indica si los resultados de este Step deben aparecer en el Assembly Status JSON
queuebatchEstablecer la cola en «batch» reduce manualmente la prioridad de los Jobs de este Step para evitar consumir cupos prioritarios con Jobs que no necesitan un tiempo de espera cero en la cola
force_acceptboolean(valor predeterminado:false)Forzar a un Robot a aceptar un tipo de archivo que habría ignorado.
De forma predeterminada, los Robots ignoran los archivos que no reconocen. 🤖/video/encode, por ejemplo, ignorará sin problemas las imágenes de entrada.
Si configuras el parámetro
force_acceptcomotrue, puedes forzar a los Robots a aceptar todos los archivos que reciban. Esto normalmente provocará errores y solo debe usarse para depuración o para abordar casos extremos.ignore_errorsboolean | Array<meta | execute>(valor predeterminado:[])Ignorar errores durante fases específicas del procesamiento.
Establecer este parámetro en
["meta"]hará que el Robot ignore los errores durante la extracción de metadatos.Establecer este parámetro en
["execute"]hará que el Robot ignore los errores durante la fase principal de ejecución.Configurar este parámetro como
trueequivale a["meta", "execute"]y hará que se ignoren los errores en ambas fases.usestring | Array<string> | Array<object> | objectEspecifica qué Step o Steps se usarán como entrada.
- Puedes elegir cualquier nombre para los Steps, excepto
":original"(reservado para las subidas de usuarios gestionadas por Transloadit) - Puedes proporcionar varios Steps como entrada mediante arrays:
{ "use": [ ":original", "encoded", "resized" ] } - También puedes etiquetar los Steps de entrada con
aspara comunicar la intención semántica a los Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
ConsejoProbablemente eso sea todo lo que necesitas saber sobre
use, pero puedes consultar los casos de uso avanzados.- Puedes elegir cualquier nombre para los Steps, excepto
formatavif | gif | jpeg | jpg | png | webp(valor predeterminado:"png")El formato de salida de la imagen en miniatura generada. Si se genera un clip de video corto mediante la estrategia
clip, su formato lo defineclip_format.qualitystring | numberCalidad de compresión para las vistas previas estáticas, de 1 a 100. Si se especifica, el redimensionamiento final de la imagen realiza el encoding directamente en el formato solicitado con esta calidad y elimina los metadatos incrustados. Omítelo para conservar el comportamiento de encoding predeterminado. Los clips animados usan su propia configuración de encoding. Si
optimizeestá activado, la optimización se ejecuta después de este encoding.widthnumber(valor predeterminado:300)Ancho de la miniatura, en píxeles.
heightnumber(valor predeterminado:200)Altura de la miniatura, en píxeles.
resize_strategycrop | fit | fillcrop | min_fit | pad | stretch(valor predeterminado:"pad")Para lograr las dimensiones deseadas de la miniatura de vista previa, es posible que el Robot tenga que redimensionar la imagen generada. Esto ocurre, por ejemplo, cuando las dimensiones de un fotograma extraído de un video no coinciden con los parámetros
widthyheightelegidos.Consulta la lista de estrategias de redimensionamiento disponibles para obtener más detalles.
backgroundstring(valor predeterminado:"#ffffffff")El código hexadecimal del color usado para rellenar el fondo (solo se usa con la estrategia de redimensionamiento pad). El formato es
#rrggbb[aa](rojo, verde, azul, alfa). Usa#00000000para un relleno transparente.zoomboolean(valor predeterminado:true)Si se establece en
false, las imágenes más pequeñas no se estirarán hasta los valores deseados dewidthyheight. Esto es útil si quieres conservar las dimensiones originales de la imagen y solo limitar la salida a un tamaño máximo. Para conocer en detalle el efecto del zoom en tu estrategia de redimensionamiento preferida, revisa la lista de estrategias de redimensionamiento disponibles.Ten en cuenta que este parámetro solo afecta a las estrategias que producen una imagen fija. Los clips animados generados por la estrategia
clipno se ven afectados.strategyobjectDefinición del proceso de generación de miniaturas por categoría de archivo. Cada clave selecciona una categoría de archivo y su valor es un array ordenado de estrategias:
Categoría de archivo Estrategias disponibles audioartwork,waveform,iconvideoartwork,frame,clip,iconimageimage,embedded-preview,icondocumentpage,iconarchiveiconwebpagerender,iconunknowniconartworkextrae la carátula incrustada,waveformdibuja una forma de onda de audio,frameextrae un fotograma del video yclipcrea una vista previa animada del video. Para imágenes,imageredimensiona el original yembedded-previewextrae una vista previa incrustada cuando está disponible.pagerenderiza la primera página del documento,rendercaptura una página web yicongenera un icono del tipo de archivo.Para cada archivo, el Robot intentará usar la primera estrategia para generar la miniatura. Si este proceso falla (p. ej., porque no hay carátula disponible en un archivo de video), se intenta la siguiente estrategia. Esto se repite hasta que se genera una miniatura o se agota la lista. Seleccionar la estrategia
iconcomo última entrada proporciona un mecanismo de respaldo para garantizar que siempre haya una estrategia adecuada disponible.De forma predeterminada, el parámetro tiene la siguiente definición:
{ "archive": [ "icon" ], "audio": [ "artwork", "waveform", "icon" ], "document": [ "page", "icon" ], "image": [ "image", "embedded-preview", "icon" ], "unknown": [ "icon" ], "video": [ "artwork", "frame", "icon" ], "webpage": [ "render", "icon" ] }artwork_outer_colorstringEl color usado en las partes exteriores del degradado de la carátula.
artwork_center_colorstringEl color usado en el centro del degradado de la carátula.
waveform_center_colorstring(valor predeterminado:"#000000ff")El color usado en el centro del degradado de la forma de onda. El formato es
#rrggbb[aa](rojo, verde, azul, alfa). Solo se usa si se aplica la estrategiawaveformpara archivos de audio.waveform_outer_colorstring(valor predeterminado:"#000000ff")El color usado en las partes exteriores del degradado de la forma de onda. El formato es
#rrggbb[aa](rojo, verde, azul, alfa). Solo se usa si se aplica la estrategiawaveformpara archivos de audio.waveform_heightstring | number(valor predeterminado:100)Altura de la forma de onda, en píxeles. Solo se usa si se aplica la estrategia
waveformpara archivos de audio. Puede utilizarse para que la forma de onda ocupe solo una sección de la miniatura de vista previa.waveform_widthstring | number(valor predeterminado:300)Ancho de la forma de onda, en píxeles. Solo se usa si se aplica la estrategia
waveformpara archivos de audio. Puede utilizarse para que la forma de onda ocupe solo una sección de la miniatura de vista previa.icon_stylesquare | with-text(valor predeterminado:"with-text")El estilo del icono generado si se aplica la estrategia
icon. El estilo predeterminado,with-text, incluye un icono que muestra el tipo de archivo y, debajo, un cuadro de texto cuyo contenido se puede controlar con el parámetroicon_text_contenty que, de forma predeterminada, muestra la extensión del archivo (p. ej., MP4, JPEG). El estilosquaresolo incluye una variante cuadrada del icono que muestra el tipo de archivo. A continuación se muestran vistas previas de ejemplo generadas para un archivo de texto con los distintos estilos:
Estilowith-text:
Estilosquare:

icon_text_colorstring(valor predeterminado:"#a2a2a2")El color del texto usado en el icono. El formato es
#rrggbb[aa]. Solo se usa si se aplica la estrategiaicon.icon_text_fontstring(valor predeterminado:"Roboto")La familia tipográfica del texto usado en el icono. Solo se usa si se aplica la estrategia
icon. Aquí encontrarás una lista de todas las fuentes admitidas.icon_text_contentextension | none(valor predeterminado:"extension")El contenido del cuadro de texto de los iconos generados. Solo se usa si el parámetro
icon_styleestá establecido enwith-text. El valor predeterminado,extension, añade la extensión del archivo (p. ej., MP4, JPEG) al icono. El valornonedeja vacío el cuadro de texto y reserva espacio para superponer un texto personalizado, por ejemplo, mediante HTML en tu aplicación.optimizeboolean(valor predeterminado:true)Especifica si la imagen de vista previa generada debe optimizarse para reducir su tamaño de archivo manteniendo la calidad visual. Si está activado, la imagen se optimizará mediante 🤖/image/optimize.
optimize_prioritycompression-ratio | conversion-speed(valor predeterminado:"conversion-speed")Especifica si se prioriza la velocidad de conversión o la tasa de compresión al optimizar imágenes. Solo se usa si
optimizeestá activado. Consulta la documentación de 🤖/image/optimize para obtener más detalles.optimize_progressiveboolean(valor predeterminado:false)Especifica si las imágenes deben entrelazarse, lo que hace que la imagen resultante se cargue de forma progresiva en los navegadores. Solo se usa si
optimizeestá activado. Consulta la documentación de 🤖/image/optimize para obtener más detalles.clip_formatapng | avif | gif | webp(valor predeterminado:"webp")El formato de imagen animada del clip de video generado. Solo se usa si se aplica la estrategia
clippara archivos de video.Consulta MDN Web Docs para obtener información detallada sobre los formatos de imagen y sus características. GIF cuenta con amplio soporte en el software, pero solo admite una paleta de colores limitada. APNG admite diversas profundidades de color, pero su compresión sin pérdidas produce imágenes grandes para videos. AVIF ofrece una compresión eficiente, pero la compatibilidad con animaciones varía entre navegadores. WebP ofrece un equilibrio entre archivos pequeños y calidad visual, y es el formato de clip predeterminado.
clip_offsetstring | number(valor predeterminado:1)La posición de inicio, en segundos, en la que se corta el clip. Solo se usa si se aplica la estrategia
clippara archivos de video. En videos grandes, es posible que solo se importen partes del archivo para mejorar la velocidad. Un desplazamiento fuera de los datos multimedia disponibles puede impedir la generación del clip.clip_durationstring | number(valor predeterminado:5)La duración en segundos del clip de video generado. Solo se usa si se aplica la estrategia
clippara archivos de video. Ten en cuenta que una mayor duración del clip también produce un archivo más grande, lo que podría no ser deseable para las vistas previas.clip_frameratestring | number(valor predeterminado:5)La velocidad de fotogramas del clip de video generado. Solo se usa si se aplica la estrategia
clippara archivos de video. Ten en cuenta que una velocidad de fotogramas más alta se ve más fluida, pero también produce un archivo más grande, lo que podría no ser deseable para las vistas previas.clip_loopboolean(valor predeterminado:true)Especifica si la imagen animada generada debe repetirse indefinidamente (
true) o detenerse tras reproducir la animación una vez (false). Solo se usa si se aplica la estrategiaclippara archivos de video.