PlayerV

A streaming-style video player for your website. Embed trailers, VOD, or HLS streams with quality selection, ads, chapters, captions, and share — using one script and a simple configuration object.

For website owners

What PlayerV is

PlayerV is the player you drop into a page. You provide video URLs (and optional ads / chapters). Visitors get a polished YouTube-like experience — play, seek, quality, captions, fullscreen, and more.

Works on any site

HTML, WordPress, PHP, Laravel, React, or a static landing page.

One line to load

Load playerv.js from axwb.ro, then call PlayerV.create.

Configured in JSON

Titles, sources, ads, and features are options you pass in — no custom UI coding required.

CDN base: https://axwb.ro/ — player script: https://axwb.ro/v1/playerv.js

Try it

Live demo

Real PlayerV loaded from axwb.ro — sample clip hosted on this site (Sintel trailer, Blender Foundation).

Tip: open Settings for quality & speed · try Share · resume is on for this demo.

Generator

Config builder

Tick the features you want, fill in your media URLs, then copy the generated config or HTML. Use Apply to demo to preview instantly above.

Source
Features

Generated JSON


              

HTML embed


              

Product

What the player can do

Built-in controls and options available to every embed.

Core playback

Play, pause, seek, volume, speed, mute, fullscreen, picture-in-picture, keyboard shortcuts.

Multiple qualities

Offer 480p / 720p / 1080p (or more). Viewers pick quality in Settings.

HLS streaming

Adaptive .m3u8 streams with automatic quality switching.

Ads

Pre-roll / mid-roll / post-roll video ads, or VAST/VMAP tags from your ad server.

Chapters

Named markers on the timeline so viewers jump to scenes.

Captions

WebVTT subtitles with size / color / background styling.

Resume & deep links

“Continue watching” plus shareable links with a start time (?t=).

Share

One-click copy of the current timestamp link.

Sleep timer

Auto-pause after 5–45 minutes or at the end of the video.

Cast

AirPlay / Remote Playback where the device supports it.

Ambient & theater

Cinematic backdrop and theater layout on desktop pages.

Views & end screen

Optional view counter and “next / related” cards when the video ends.

Getting started

How to embed PlayerV

Pick the method that matches your site. Most clients use Method 1.

Method 1 — Script (recommended)

  1. Add a container Place an empty <div id="player"> where the video should appear.
  2. Load the player Add the PlayerV script from your CDN URL.
  3. Create the player Call PlayerV.create('#player', { … }) with your video config.
<div id="player" style="width:100%;aspect-ratio:16/9;background:#000"></div>

<script src="https://axwb.ro/v1/playerv.js" crossorigin="anonymous"></script>
<script>
  PlayerV.create('#player', {
    content: {
      mode: 'mp4',
      title: 'Official Trailer',
      poster: 'https://media.example.com/poster.jpg',
      mp4Qualities: [
        { id: '720p', label: '720p', height: 720, src: 'https://media.example.com/trailer-720.mp4' },
        { id: '1080p', label: '1080p', height: 1080, src: 'https://media.example.com/trailer-1080.mp4' }
      ]
    },
    resume: { enabled: true },
    ambient: true,
    share: true,
    adBreaks: []
  })
</script>

Method 2 — iframe (no JavaScript on your page)

Best when your CMS or security policy blocks custom scripts. Your page only includes an iframe.

<iframe
  src="https://axwb.ro/v1/frame.html?config=ENCODED_JSON"
  title="Video"
  style="width:100%;aspect-ratio:16/9;border:0;background:#000"
  allow="fullscreen; autoplay; picture-in-picture"
  allowfullscreen
></iframe>

ENCODED_JSON is your configuration object turned into a URL-encoded JSON string. Ask your developer or PlayerV contact to generate it, or build it in your backend (encodeURIComponent(JSON.stringify(config))).

Method 3 — HTML data attribute (CSP-friendly)

<div
  data-playerv
  data-config='{"content":{"mode":"mp4","title":"Trailer","mp4Qualities":[{"id":"720p","label":"720p","height":720,"src":"https://media.example.com/v.mp4"}]},"adBreaks":[]}'
  style="width:100%;aspect-ratio:16/9;background:#000"
></div>

<script src="https://axwb.ro/v1/playerv.js" crossorigin="anonymous"></script>
<script src="/path/to/playerv-init.js"></script>

playerv-init.js only needs: document.addEventListener('DOMContentLoaded', () => PlayerV.autoInit())

Configuration

How to configure your video

Host your media on any HTTPS video CDN. Then describe it in the config you pass to PlayerV.

{
  "content": {
    "mode": "mp4",
    "title": "Official Trailer",
    "poster": "https://media.example.com/poster.jpg",
    "mp4Qualities": [
      { "id": "720p", "label": "720p", "height": 720, "src": "https://media.example.com/t-720.mp4" },
      { "id": "1080p", "label": "1080p", "height": 1080, "src": "https://media.example.com/t-1080.mp4" }
    ]
  },
  "resume": { "enabled": true },
  "adBreaks": []
}

Reference

Common options

The settings clients use most often. All are optional except content.

Option What it does Example
content Video source, title, poster, captions mode: "mp4" | "hls"
adBreaks Local video ads (pre / mid / post) See Configure → With ads
ads.vastTagUrl Remote VAST tag Your ad-tag URL
chapters Timeline chapter markers [{ time: 0, title: "Start" }]
resume “Continue watching” prompt { enabled: true }
share Show share button true (default)
cast Show cast / AirPlay control true (default)
sleepTimer Sleep timer in Settings true (default)
ambient Blurred cinematic backdrop true
theater / miniPlayer Layout modes on desktop Set false inside tight layouts / iframes
stats.viewsKey Built-in view counter key "trailer-42"
events Fire JS events (play, complete, …) true
startTime Start at a given second 30

Controlling the player from your page

const player = PlayerV.create('#player', config)

player.play()
player.pause()
player.seek(45)
player.on('complete', () => { /* video finished */ })
player.destroy() // remove when leaving the page (SPA)

FAQ

Frequently asked questions

Answers for marketing, CMS, and site owners.

Do I need React or Node on my website?

No. You only load playerv.js and pass a configuration. React is already inside the player file.

Where do my video files live?

On your media host or CDN (MP4 files or an HLS playlist). PlayerV only plays the HTTPS URLs you put in the config.

What URL do I use for the player script?

Always use https://axwb.ro/v1/playerv.js. Prefer /v1/ in production — not /latest/.

Can I use this in WordPress / Webflow / Shopify / Laravel?

Yes. Any page that can include a script or an iframe works. If the CMS blocks scripts, use the iframe method.

How do ads work?

Either list MP4 ad creatives in adBreaks, or point ads.vastTagUrl to your VAST tag. Mid-rolls appear as markers on the progress bar; viewers can skip after the configured delay.

How do I turn features off?

Set flags to false, e.g. share: false, cast: false, sleepTimer: false, theater: false.

Will it work on mobile?

Yes — iOS Safari and Android Chrome are supported. Autoplay usually requires starting muted (muted: true, autoplay: true).

Why doesn’t my HLS stream play?

The media server must allow your website origin (CORS) for the playlist and segments, and URLs must be HTTPS.

How big is the player file?

About 850 KB uncompressed (~265 KB gzipped), including the UI and HLS support. Your CDN should serve it compressed.

Where is the documentation / CDN?

Client guide: https://axwb.ro/ · Player script: https://axwb.ro/v1/playerv.js · iframe: https://axwb.ro/v1/frame.html?config=…