New to Claude Skills? Learn how to install them →

vercel-labs on GitHub

Remotion JSON Renderer

OfficialFree

Transform JSON timelines into dynamic video compositions.

Get this skill

Free · Opens the source repo

What Remotion JSON Renderer does

The Remotion JSON Renderer is a specialized tool designed for developers and designers who want to create video compositions from JSON timeline specifications. This renderer integrates seamlessly with the Remotion framework, allowing users to define their video content in a structured JSON format. By utilizing the @json-render/remotion package, it simplifies the process of rendering videos based on predefined specifications, making it particularly useful for generating video catalogs or AI-generated video timelines.

To get started, users can leverage the Player component from the Remotion library, passing in a TimelineSpec that outlines the composition's properties, such as frame rate, dimensions, and duration. This approach not only streamlines the video creation process but also allows for the use of standard components like title cards, image slides, and text overlays, which can be easily customized or extended with additional components as needed.

The skill is especially beneficial for teams working on projects that require rapid video generation, such as marketing materials, educational content, or product showcases. With the ability to define custom components and integrate them into the rendering process, developers can tailor their video outputs to meet specific requirements, enhancing the overall production quality and efficiency.

In summary, the Remotion JSON Renderer provides an effective solution for turning JSON-based specifications into engaging video content, making it an essential tool for anyone involved in video production and design.

When to use it

Use this skill when you need to generate videos programmatically from structured data, especially in projects involving video catalogs or AI-generated content.

When not to use it

This skill may not be suitable for users looking for a traditional video editing tool, as it focuses on programmatic video generation rather than manual editing.

What you can build with it

Automated Marketing Videos

Generate marketing videos quickly by defining your video content in JSON, allowing for rapid production and iteration.

Educational Content Creation

Create engaging educational videos by specifying timelines and components in JSON, making it easy to update content.

AI-Generated Video Timelines

Utilize AI to create video timelines in JSON format, then render them programmatically for consistent output.

How to install Remotion JSON Renderer

View source

1. Install with the skills CLI

npx skills add vercel-labs/json-render/remotion --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by vercel-labs

@json-render/remotion

Remotion renderer that converts JSON timeline specs into video compositions.

Quick Start

import { Player } from "@remotion/player";
import { Renderer, type TimelineSpec } from "@json-render/remotion";

function VideoPlayer({ spec }: { spec: TimelineSpec }) {
  return (
    <Player
      component={Renderer}
      inputProps={{ spec }}
      durationInFrames={spec.composition.durationInFrames}
      fps={spec.composition.fps}
      compositionWidth={spec.composition.width}
      compositionHeight={spec.composition.height}
      controls
    />
  );
}

Using Standard Components

import { defineCatalog } from "@json-render/core";
import {
  schema,
  standardComponentDefinitions,
  standardTransitionDefinitions,
  standardEffectDefinitions,
} from "@json-render/remotion";

export const videoCatalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
  transitions: standardTransitionDefinitions,
  effects: standardEffectDefinitions,
});

Adding Custom Components

import { z } from "zod";

const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    MyCustomClip: {
      props: z.object({ text: z.string() }),
      type: "scene",
      defaultDuration: 90,
      description: "My custom video clip",
    },
  },
});

// Pass custom component to Renderer
<Player
  component={Renderer}
  inputProps={{
    spec,
    components: { MyCustomClip: MyCustomComponent },
  }}
/>

Timeline Spec Structure

{
  "composition": { "id": "video", "fps": 30, "width": 1920, "height": 1080, "durationInFrames": 300 },
  "tracks": [{ "id": "main", "name": "Main", "type": "video", "enabled": true }],
  "clips": [
    { "id": "clip-1", "trackId": "main", "component": "TitleCard", "props": { "title": "Hello" }, "from": 0, "durationInFrames": 90 }
  ],
  "audio": { "tracks": [] }
}

Standard Components

ComponentTypeDescription
TitleCardsceneFull-screen title with subtitle
TypingTextsceneTerminal-style typing animation
ImageSlideimageFull-screen image display
SplitScreensceneTwo-panel comparison
QuoteCardsceneQuote with attribution
StatCardsceneAnimated statistic display
TextOverlayoverlayText overlay
LowerThirdoverlayName/title overlay

Key Exports

ExportPurpose
RendererRender spec to Remotion composition
schemaTimeline schema
standardComponentsPre-built component registry
standardComponentDefinitionsCatalog definitions
useTransitionTransition animation hook
ClipWrapperWrap clips with transitions

Frequently asked questions about Remotion JSON Renderer

Similar skills