Discover / Video & YouTube
Revideo
by redotvideoTypeScript
Framework for creating videos programmatically using code and React.
Maturity: experimental because active but has never tagged a release. Derived from release and commit history, not a rating.
- Stars
- 4.0k
- Forks
- 201
- Downloads / mo
- —
- Last commit
- 2026-07-15
- License
- MIT
- Open issues
- 65
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidenceProducing many videos programmatically is impossible in a timeline editor and fragile with raw ffmpeg scripts.
Use it when
Use it when videos must be generated from data or prompts and previewed in the browser before rendering.
Not the right pick when
Rendering needs Node and a headless browser, and anonymous render telemetry is on unless you disable it.
Capabilities
- scenes described in TypeScript as generator functions
- headless rendering to a file with renderVideo()
- render endpoint exposed from your project via the CLI
- parallelized rendering split across workers
- React Player component for browser preview with dynamic inputs
- Video and Audio components with frame accurate synchronization
Requirements
- Node and a headless browser in the render environment
Cost: Free and open source
Install
Derived from the published package name in the repository, not from a model.
Video walkthroughs
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Tags
README
<br/>
<p align="center">
<a href="https://midrender.com/revideo">
<img width="600" alt="Revideo" src="./logo.svg">
</a>
</p>
<p align="center">
<a href="https://www.npmjs.com/package/@revideo/core"><img src="https://img.shields.io/npm/v/@revideo/core?style=flat" alt="npm version"></a>
<a href="https://github.com/midrender/revideo/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat" alt="MIT license"></a>
<a href="https://discord.com/invite/JDjbfp6q2G"><img src="https://img.shields.io/discord/1071029581009657896?style=flat&logo=discord&logoColor=fff&color=404eed" alt="discord"></a>
</p>
<br/>
Revideo
Revideo is a rendering engine for creating videos in code. You describe a scene
in TypeScript — shapes, text, media, and animation — and Revideo renders it to a
video file. It ships a headless render API for generating videos
programmatically and a React player for previewing scenes in the browser.
A scene is plain TypeScript, so Claude or Codex can produce one from a prompt.
Revideo borrows concepts from Remotion and Rive, but is, in its core, zero dep.
It's the engine behind Midrender.
<br/>
Getting Started
Create a project:
npm init @revideo@latest
A scene is a generator function. The example below adds a <RubiksCube/>
component and animates a scramble:
import {makeScene2D} from '@revideo/2d';
import {createRef, waitFor} from '@revideo/core';
import {RubiksCube} from './rubiks-cube';
export default makeScene2D('scramble', function* (view) {
view.fill('#0d0d12');
const cube = createRef<RubiksCube>();
view.add(<RubiksCube ref={cube} size={620} />);
yield* waitFor(0.5);
yield* cube().scramble(18); // 18 animated quarter-turns
});
The cube is a single self-contained component
(rubiks-cube.tsx): 54 stickers in
3D, orthographically projected in a custom draw(), with each quarter-turn
animated by interpolating a rotation about the turning layer's axis.
A Rubik's cube scrambling itself
Render it from the command line with
<br/>
Capabilities
- Headless rendering — render a project to a file with
renderVideo(), or
expose a rendering endpoint from your project with the
CLI. It runs anywhere Node and a
headless browser run, including serverless platforms like Google Cloud Run
(example).
- Parallelized rendering — split a render across workers to cut wall-clock
time (details).
- Browser preview — the React
<Player/> renders scenes in the
browser and accepts dynamic inputs, so the same project drives both preview
and final render.
- Media and audio —
<Video/>and<Audio/>components with audio export
and frame-accurate synchronization.
See the documentation for the full API.
<br/>
Telemetry
Revideo anonymously counts how many videos are rendered, via
PostHog. The implementation is in
Disable it with an environment variable:
DISABLE_TELEMETRY=true
License
MIT — see LICENSE.