Skip to main content

downloadMedia()

Downloads a rendered video, audio or still to the disk of the machine this API is called from.

If you want to let the user download a result to their machine, use renderMediaOnLambda() -> downloadBehavior instead.

ts
import {downloadMedia} from '@remotion/lambda';
 
const {outputPath, sizeInBytes} = await downloadMedia({
bucketName: 'remotionlambda-r42fs9fk',
region: 'us-east-1',
renderId: '8hfxlw',
outPath: 'out.mp4',
onProgress: ({totalSize, downloaded, percent}) => {
console.log(`Download progress: ${totalSize}/${downloaded} bytes (${(percent * 100).toFixed(0)}%)`);
},
});
 
console.log(outputPath); // "/Users/yourname/remotion-project/out.mp4"
console.log(sizeInBytes); // 21249541

Arguments

An object with the following properties:

region

The AWS region in which the render has performed.

bucketName

The bucket name in which the render was stored. This should be the same variable you used for renderMediaOnLambda() or renderStillOnLambda().

renderId

The ID of the render. You can retrieve this ID by calling renderMediaOnLambda() or renderStillOnLambda().

outPath

Where the video should be saved. Pass an absolute path, or it will be resolved relative to your current working directory.

onProgress?

Callback function that gets called with the following properties:

  • totalSize in bytes
  • downloaded number of bytes downloaded
  • percent relative progress between 0 and 1

customCredentials?v3.2.23

If the render was saved to a different cloud, pass an object with the same endpoint, accessKeyId and secretAccessKey as you passed to renderMediaOnLambda() or renderStillOnLambda().

signal?v4.0.406

An AbortSignal that allows the download to be cancelled.

Return value

Returns a promise resolving to an object with the following properties:

outputPath

The absolute path of where the file got saved.

sizeInBytes

The size of the file in bytes.

Compatibility

BrowsersServersEnvironments
Chrome
Firefox
Safari
Node.js
Bun
Serverless Functions

See also