One iframe · movies, TV & anime

The player your catalog
deserves.

RiftPlayer wraps embed.vidrift.net with clean routes, resume-anywhere history and a parent event bridge. Static files only — no build step, no dependencies.

Movie

TV

Continue watching

Picks up where you left off

Positions live in the viewer's browser (riftplayer.watch.v1) and are re-applied on open — plain routes, no ?t= needed.

Playground

Build a player URL live

Start

Docs

Wired for embedding

The player reports progress, episodes and state to your page. The essentials:

Quick embed
<div style="position:relative;padding-bottom:56.25%;height:0">
  <iframe src="https://your-host/movie/1440098"
    style="position:absolute;inset:0;width:100%;height:100%;border:0"
    allowfullscreen allow="autoplay; fullscreen"></iframe>
</div>
Keep your URL in step
addEventListener("message", (e) => {
  if (e.data?.type !== "vidrift:episode") return;
  history.replaceState(null, "",
    `/tv/${e.data.tmdbId}/${e.data.season}/${e.data.episode}`);
});
Own the controls
iframe.addEventListener("load", () =>
  iframe.contentWindow.postMessage(
    { type: "vidrift:get-state" }, "https://embed.vidrift.net"));

// pause behind your own menu, restore after
send({ type: "vidrift:pause" });
send({ type: "vidrift:set", quality: "720p" });
send({ type: "vidrift:resume", currentTime: 812.4 });

Routes & params

/movie/{tmdb_id}Movies by TMDB id
/tv/{tmdb_id}/{s}/{e}TV by TMDB id
/anime/{anilist_id}/{e}Anime by AniList id (?dub=1)
brand · brandColor · brandLogoYour name, accent and logo on the loading card
poster · watermark · font · uiScaleBackdrop, corner bug, typeface, control scale
title · t · server · qualityTitle override, start time, pinned server / rendition
muted · autoplay · hide · mobileSheetsStart state and hidden controls
resume · exitresume=0 skips stored positions, exit=0 removes back arrows

Events (forwarded verbatim)

vidrift:progressPosition every 5s while playing
vidrift:paused / unpausedPlayback state changed
vidrift:ui-visible / ui-hiddenPlayer chrome shown / hidden
vidrift:episodeEpisode switched (URL follows automatically)
vidrift:nextup / nextup-playCredits card shown / play-next clicked
vidrift:ended · vidrift:exitReached the end · back pressed
vidrift:stateFull state: servers, qualities, subtitles…
riftplayer:fullscreenchangeCSS-fullscreen fallback (embedded pages)