downloadAndParseMedia()
Same as parseMedia(), but also downloads the media file to disk.
Meant to be used in Node.js and Bun.
You can obtain fields like tracks and duration by passing them to the fields object.
Download a file and get metadataimport {downloadAndParseMedia } from '@remotion/media-parser'; import {nodeWriter } from '@remotion/media-parser/node-writer'; const {durationInSeconds ,tracks } = awaitdownloadAndParseMedia ({src : 'https://s3.amazonaws.com/bucket/uploaded-asset.mp4',writer :nodeWriter ('output.mp4'),fields : {durationInSeconds : true,tracks : true, }, }); // If here was reached, file is downloaded!console .log (durationInSeconds );console .log (tracks );
You can use callback functions to retrieve information as soon as it is available.
Throw an error to stop the download.
Stop the download if the video is too longimport {downloadAndParseMedia } from '@remotion/media-parser'; import {nodeWriter } from '@remotion/media-parser/node-writer'; awaitdownloadAndParseMedia ({src : 'https://s3.amazonaws.com/bucket/uploaded-asset.mp4',writer :nodeWriter ('output.mp4'),onDurationInSeconds : (duration ) => { if (duration &&duration > 600) { throw newError ('Video is too long'); } }, });
If an error occurs (including one you've thrown yourself), you can decide what to do using onError.
Continue download despite errorimport {downloadAndParseMedia } from '@remotion/media-parser'; import {nodeWriter } from '@remotion/media-parser/node-writer'; awaitdownloadAndParseMedia ({src : 'https://s3.amazonaws.com/bucket/uploaded-asset.mp4',writer :nodeWriter ('output.mp4'),onError : (error ) => { // Force the file to be downloaded despite parsing error. // Note: At the end, the error will be thrown nonetheless. return {action : 'download'}; // Default behavior: // Abort the download, delete the file and throw the error immediately. // return {action: 'fail'}; }, });
API
All of the same parameters for parseMedia() are available, plus:
writer
The writer to use to write the downloaded file to disk. Currently available:
nodeWriterfrom@remotion/media-parser/node-writer: Writes to disk using Node.js'sfsmodule.
onError
A function that is called when an error occurs. It receives the error as an argument.
You must return one of the following:
{action: 'download'}: Continue downloading the file despite the error.{action: 'fail'}: Abort the download, delete the file and throw the error immediately.
See also the example above.
The function may be async, parsing is paused until it resolves.