Upload a recording once. It plays well on every connection.

plycdn encodes each video at several qualities, makes a poster and a scrubbing strip, and streams it through links only your backend can sign. A keyboard-operable player for Angular and React is included, and video is included in every plan.

A library’s qualities
  • 2160pnot chosen
  • 1440pencoded
  • 1080pencoded
  • 720pencoded
  • 480pencoded
  • 360pencoded
  • 240pencoded

Example library. You choose the qualities.

Adaptive streaming, without a pipeline to run.

Choose the qualities for a library, from 240p to 2160p, and every upload is encoded to match. The player starts at the best quality the viewer's connection allows and moves up or down as it changes.

  • Never encoded above the original: a 720p recording gets 240p to 720p.
  • A video starts playing as soon as its lowest quality is ready.
  • Portrait video keeps its orientation, and you can offer a download for each viewer.
after an upload
  1. uploadedThe recording is safe and queued for encoding.
  2. playableThe lowest quality is ready and playback can begin.
  3. readyEvery chosen quality, the poster and the scrubbing strip are done.

Videos are private and reached only through links your backend signs, with your own rules about who may watch.

A player your users can operate and your auditors can check.

Quality and speed menus, a scrubbing strip over the seek bar, full screen, and a memory of where each viewer stopped. Everything works from the keyboard and is announced to screen readers.

  • Speed from 0.5x to 2x, and the number keys jump through the video.
  • Links renew themselves, so a four-hour lecture plays through without a break.
  • Labels and theme are yours to set, including other languages for the controls.
Lesson.tsx
<PlycdnProvider config={{ baseUrl: "/api/plycdn/v1" }}>
  <PlycdnPlayer
    libraryId={lesson.libraryId}
    videoId={lesson.videoId}
    onStatus={setStatus}
  />
</PlycdnProvider>

Captions and subtitles in the player.

When a video carries caption tracks, the player lists them in its captions menu and the C key steps through them. Viewers choose a language, or turn captions off.

  • Each track is listed by name.
  • For a video with no tracks, the button says so rather than disappearing.
captions menu
Off
English captions
Second caption track

Illustrative tracks.

Know when each video is ready.

Your backend receives a signed notification when a video is playable, when it is fully ready and if it fails, so there is nothing to poll. Every delivery attempt is visible, and you can send a test or redeliver.

a notification
POST https://your-app.example/hooks/plycdn
signature: …

video ready: libraryId, videoId

Signed, so you can verify it came from us. Illustrative.

Streaming and search side by side

Video is stored and streamed on its own. Register a recording with search as well and its speech and on-screen text become findable, each result carrying the moment it was said.

Video is included in every plan. Encoding is counted in minutes of video, from ₹0.60 per minute, in Mumbai, India. Storage and delivery are priced separately.

Stream your first course.

Tell us how many hours of video you have and who watches. We set up a library and you measure it on your own content.