# SDK de Node.js

[transloadit/node-sdk](https://github.com/transloadit/node-sdk)

Tenemos un kit de desarrollo de software completo para Node.js que facilita la comunicación con la REST API de Transloadit desde tus aplicaciones de Node.

## Instala

**Nota:** Esta documentación abarca la versión v4 del SDK de Node (ESM, Node.js 20+). Para consultar la documentación de versiones anteriores, consulta[v3](https://github.com/transloadit/node-sdk/tree/v3) o[v2](https://github.com/transloadit/node-sdk/tree/v2). Para obtener detalles sobre la actualización, consulta la[guía de migración de v3 → v4](https://github.com/transloadit/node-sdk/blob/main/MIGRATION.md).

Usa `@transloadit/node` como nombre del paquete. El nombre anterior del paquete npm, `transloadit`, se mantiene como alias para ofrecer compatibilidad con versiones anteriores.

Dentro de tu proyecto, escribe:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
yarn add @transloadit/node

```

o

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
npm install --save @transloadit/node

```

## CLI

Este paquete incluye una CLI completa:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
export TRANSLOADIT_KEY="YOUR_TRANSLOADIT_KEY"
export TRANSLOADIT_SECRET="YOUR_TRANSLOADIT_SECRET"
npx -y @transloadit/node --help

```

###### Nota

El archivo binario de la CLI todavía se llama `transloadit`, por lo que los ejemplos de comandos pueden usar`npx transloadit ...`.

### Comandos de intención

Para tareas puntuales rápidas, la CLI también incluye comandos de intención de alto nivel. Estos encapsulan flujos de trabajo comunes de Transloadit en subcomandos fáciles de deducir, para que no tengas que comenzar cada tarea conAssembly Instructions en JSON.

Por ejemplo:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
export TRANSLOADIT_KEY="YOUR_TRANSLOADIT_KEY"
export TRANSLOADIT_SECRET="YOUR_TRANSLOADIT_SECRET"
npx -y transloadit markdown pdf --input ./README.md --print-urls

```

Otros ejemplos incluyen:

* `npx -y transloadit image remove-background --input ./photo.jpg --print-urls`
* `npx -y transloadit image generate --prompt "A red bicycle in a studio" --output bicycle.png`
* `npx -y transloadit image generate --input ./person1.jpg --input ./person2.jpg --input ./background.jpg --prompt "Place person1.jpg feeding person2.jpg in front of background.jpg" --output scene.png`
* `npx -y transloadit image describe --input ./hero.jpg --for wordpress --output fields.json`

`image generate` ahora usa `google/nano-banana-2` de forma predeterminada, incluidas las ejecuciones guiadas por entradas.

Si omites `--output`, la CLI escribe junto a un único archivo local de entrada cuando es posible. De lo contrario, usa como alternativa el directorio de trabajo actual. Usa solo `--print-urls` cuando quieras obtener URL temporales de los resultados sin descargarlos localmente.

También actualizamos el[repositorio público de habilidades de Transloadit](https://github.com/transloadit/skills/tree/main/skills/transform-generate-image-with-transloadit)para que use el mismo flujo de generación de imágenes basado en intención.

Para consultar la referencia completa de comandos, consulta la[referencia de comandos de intención](https://github.com/transloadit/node-sdk/blob/main/packages/node/docs/intent-commands.md)y el archivo [README](https://github.com/transloadit/node-sdk#readme) del paquete.

## Proyectos CommonJS

El SDK solo admite ESM. Si usas CommonJS, utiliza una importación dinámica:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```javascript
async function getClient() {
  const { Transloadit } = await import('@transloadit/node')
  return new Transloadit({
    authKey: process.env.TRANSLOADIT_KEY,
    authSecret: process.env.TRANSLOADIT_SECRET,
  })
}

```

## Uso

El siguiente código subirá una imagen y la redimensionará como miniatura:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```javascript
import { ApiError, Transloadit } from '@transloadit/node'

const transloadit = new Transloadit({
  authKey: 'YOUR_TRANSLOADIT_KEY',
  authSecret: 'YOUR_TRANSLOADIT_SECRET',
})

try {
  const options = {
    files: {
      file1: '/PATH/TO/FILE.jpg',
    },
    params: {
      steps: {
        // You can have many Steps. In this case we will just resize any inputs (:original)
        resize: {
          use: ':original',
          robot: '/image/resize',
          result: true,
          width: 75,
          height: 75,
        },
      },
      // OR if you already created a template, you can use it instead of "steps":
      // template_id: 'YOUR_TEMPLATE_ID',
    },
    waitForCompletion: true, // Wait for the Assembly (job) to finish executing before returning
  }

  const status = await transloadit.createAssembly(options)

  if (status.results.resize) {
    console.log('✅ Success - Your resized image:', status.results.resize[0].ssl_url)
  } else {
    console.log("❌ The Assembly didn't produce any output. Make sure you used a valid image file")
  }
} catch (err) {
  console.error('❌ Unable to process Assembly.', err)
  if (err instanceof ApiError && err.assemblyId) {
    console.error(`💡 More info: https://transloadit.com/assemblies/${err.assemblyId}`)
  }
}

```

Puedes [consultar aquí los detalles de tus Assemblies ejecutadas](/assemblies/).

## Ejemplos

* [Sube una imagen y redimensiónala](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/resize%5Fan%5Fimage.ts)
* [Sube una imagen y conviértela a WebP](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/convert%5Fto%5Fwebp.ts)
* [Rasteriza un SVG a PNG](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/rasterize%5Fsvg%5Fto%5Fpng.ts)
* [Recorta un rostro de una imagen y descarga el resultado](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/face%5Fdetect%5Fdownload.ts)
* [Consulta el ejemplo de reintento](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/retry.ts)
* [Calcula los costos totales (uso en GB)](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/fetch%5Fcosts%5Fof%5Fall%5Fassemblies%5Fin%5Ftimeframe.ts)
* [CRUD de Templates](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/template%5Fapi.ts)
* [CRUD de credenciales de Template](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/credentials.ts)

Para consultar más ejemplos completamente funcionales, revisa[examples/](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/).

## Documentación

Consulta [GitHub](https://github.com/transloadit/node-sdk#readme) para acceder a la documentación completa y la[guía de migración](https://github.com/transloadit/node-sdk/blob/main/MIGRATION.md) para obtener detalles sobre la actualización de v3 → v4.
