fix: add @remotion/bundler dep and ESM compat for render script

- Added @remotion/bundler to dependencies
- Fixed __dirname for ESM compatibility in render-video.ts
- Video rendering now works: tested with demo data, produces valid MP4
This commit is contained in:
Chora
2026-02-02 19:36:24 -06:00
parent 575e62a902
commit 5a537344cb
3 changed files with 21 additions and 12 deletions

View File

@@ -25,6 +25,7 @@
},
"dependencies": {
"@prisma/client": "^6.3.1",
"@remotion/bundler": "^4.0.416",
"@remotion/cli": "^4.0.416",
"@remotion/renderer": "^4.0.416",
"@tanstack/react-query": "^5.62.0",

27
pnpm-lock.yaml generated
View File

@@ -11,6 +11,9 @@ importers:
'@prisma/client':
specifier: ^6.3.1
version: 6.19.2(prisma@6.19.2(magicast@0.3.5)(typescript@5.9.3))(typescript@5.9.3)
'@remotion/bundler':
specifier: ^4.0.416
version: 4.0.416(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@remotion/cli':
specifier: ^4.0.416
version: 4.0.416(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -4170,14 +4173,14 @@ snapshots:
'@remotion/media-parser': 4.0.416
'@remotion/studio': 4.0.416(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@remotion/studio-shared': 4.0.416(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
css-loader: 5.2.7(webpack@5.96.1)
css-loader: 5.2.7(webpack@5.96.1(esbuild@0.25.0))
esbuild: 0.25.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-refresh: 0.9.0
remotion: 4.0.416(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
source-map: 0.7.3
style-loader: 4.0.0(webpack@5.96.1)
style-loader: 4.0.0(webpack@5.96.1(esbuild@0.25.0))
webpack: 5.96.1(esbuild@0.25.0)
transitivePeerDependencies:
- '@swc/core'
@@ -5176,7 +5179,7 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
css-loader@5.2.7(webpack@5.96.1):
css-loader@5.2.7(webpack@5.96.1(esbuild@0.25.0)):
dependencies:
icss-utils: 5.1.0(postcss@8.5.6)
loader-utils: 2.0.4
@@ -5488,8 +5491,8 @@ snapshots:
'@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.5(eslint@8.57.1)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1)
@@ -5508,7 +5511,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1):
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3
@@ -5519,22 +5522,22 @@ snapshots:
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1):
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.54.0(eslint@8.57.1)(typescript@5.9.3)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1)
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1):
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -5545,7 +5548,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1)
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -7024,7 +7027,7 @@ snapshots:
dependencies:
js-tokens: 9.0.1
style-loader@4.0.0(webpack@5.96.1):
style-loader@4.0.0(webpack@5.96.1(esbuild@0.25.0)):
dependencies:
webpack: 5.96.1(esbuild@0.25.0)

View File

@@ -14,6 +14,11 @@ import { bundle } from '@remotion/bundler'
import { renderMedia, selectComposition } from '@remotion/renderer'
import path from 'path'
import fs from 'fs'
import { fileURLToPath } from 'url'
// ESM compatibility
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
// Pipeline output types
interface PipelineOutput {