Host your videos.
Control who watches.

Upload a video. Share a link, embed it on your site and see how it performs.

Free plan. No credit card.

Your video. Your player.

Share a link or embed it on your website. A clean player keeps the focus on your content, without ads.

  • Choose the cover and player controls.
  • Add chapters to help viewers find their place.
  • Decide who can watch.

One video leads to the next.

Turn a playlist into a vertical viewing experience. Share a link or embed it on your site. Your audience just presses play.

Flow

Tap the sides to explore. The videos play on repeat.

A whole collection. One link.

Put demos, lessons or client previews in a playlist. Share the collection from one page.

Create a playlist

One collection. One link.

  • 3 videos
  • 0:40 total

All videos

Ad-free playbackAccess you controlLinks and embeds

Decide who gets access.

Client previews, lessons or team updates. Share each video with the access settings you need.

Add a password

Protect a video or playlist with a password. Change it when access needs to change.

Share with a group

Give members of a saved audience their own access links.

Design team3 members
Selected audience
Personal access link

Choose your domains

Set which websites may embed your videos.

example.com
Allowed domain
learn.example.com
Allowed domain
other.exampleNot allowed

Do more with the videos you share.

From the first upload to the next update. Features vary by plan.

New file. Same link.

Replace a video without changing the link or embed you've already shared.

See what gets watched

Track views, watch time and where viewers stop watching.

Connect your tools

Upload and manage videos through the API, or connect a compatible AI tool through MCP.

A video can start a conversation.

Ask a question, capture interest or point viewers to their next step. Actions bring the interaction into your video or playlist.

  • Forms, polls, cards and redirects
  • Before, during or after playback
  • Responses you can review and export
Explore Actions

Let’s get to know you

A question can make the next video more relevant.

Interactive demo. Responses are not saved; no navigation is performed.

Your videos, connected.

Add video uploads to your app or workflow. Send the file, let Vidnap process it, then share or embed the result.

  • Direct file transfer with signed upload URLs.
  • Check processing status through the API.
  • Use your own tools. Keep your own workflow.
Get an API key

Available on plans with API access.

upload.mjs
import { createReadStream } from 'node:fs';
import { stat } from 'node:fs/promises';
import { basename } from 'node:path';
import { randomUUID } from 'node:crypto';

const file = './video.mp4';
const token = process.env.VIDNAP_API_TOKEN;
if (!token) throw new Error('Set VIDNAP_API_TOKEN');
const { size } = await stat(file);
if (size <= 0 || size >= 100_000_000) {
  throw new Error('Use an MP4 under 100 MB for this example');
}

async function api(path, body) {
  const response = await fetch(`https://api.vidnap.com/v1${path}`, {
    method: body ? 'POST' : 'GET',
    headers: {
      Authorization: `Bearer ${token}`,
      'Content-Type': 'application/json',
    },
    body: body ? JSON.stringify(body) : undefined,
  });
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

const upload = await api('/uploads/init', {
  filename: basename(file), mimeType: 'video/mp4', size,
  clientOperationId: randomUUID(),
});
if (!upload.uploadUrl) throw new Error('Direct upload URL missing');

const transfer = await fetch(upload.uploadUrl, {
  method: 'PUT',
  headers: { 'Content-Type': 'video/mp4', 'Content-Length': String(size) },
  body: createReadStream(file),
  duplex: 'half',
});
if (!transfer.ok) throw new Error(await transfer.text());
await transfer.arrayBuffer();

await api('/uploads/complete', { uploadId: upload.uploadId });
const status = await api(`/uploads/${encodeURIComponent(upload.uploadId)}`);
console.log(status);

Video hosting guides

Practical pages for the jobs people hire vidnap to do — upload, share, protect and embed.

Start free. Grow when you need.

Loading plans…

A few things to know.

Contact
Can I start for free?

Yes. Create an account without a credit card. The Free plan has its own storage, upload and retention limits.

Do viewers need an account?

Public videos play from a link or embed without a vidnap account. Protected videos require the password or access you set.

Does vidnap support 4K?

Yes, on plans with 4K enabled. Upload size, storage and processing limits depend on your plan.

Can I embed videos on my website?

Yes. Copy the embed code for a video or playlist. Plans with domain restrictions let you choose which websites can use the player.

Which features are included?

Compare the plans above for storage, upload limits and tools such as 4K, analytics and API access.