🎬 react-native-nitro-thumbnail

Generate a thumbnail from any video — local or remote — with one async call.

The same API on iOS, Android, and Web. Powered by Nitro: pure Swift & Kotlin, New Architecture, no bridge.

npm license platforms Nitro

import { createThumbnail } from 'react-native-nitro-thumbnail';
 
const thumb = await createThumbnail({ url: 'https://media.example.com/clip.mp4' });
// → { path: 'file:///…/thumb.jpg', size: 19856, mime: 'image/jpeg', width: 512, height: 288 }
 
<Image source={{ uri: thumb.path }} />

One call, one frame. Here’s a real thumbnail the library extracts from the bundled demo clip:

A thumbnail extracted by createThumbnail() — the Sintel cliff/sunset shot

Demo: Sintel © Blender Foundation, CC-BY 3.0.

📦

Already published. npm install react-native-nitro-thumbnail react-native-nitro-modules — then head to Installation.

Why this library?

How it works

One TypeScript function validates your input and applies defaults, then calls a Nitro HybridObject implemented natively per platform. The box labelled “your app” never changes — only the engine behind it does.

The complete request lifecycle — cache check, decode, encode, write, evict — is in the Architecture guide.

Get started

Install

npm install react-native-nitro-thumbnail react-native-nitro-modules
cd ios && pod install

Call it

const thumb = await createThumbnail({ url, timeStamp: 2000 });

Render it

<Image source={{ uri: thumb.path }} style={{ width: thumb.width, height: thumb.height }} />