mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Webevaluationupdated 06 Oct 2026

plyr review

Plyr is a browser media player that gives HTML5 audio and video, YouTube, and Vimeo a shared set of controls and JavaScript events. It remains useful in existing sites, but the project is deprecated, receives security updates only, and directs new work to Video.js 10.

-7stars / 7d
Verdict

Our Plyr run built in 31 seconds after a 588-package install, but it offered no test target and the maintainers now direct new projects to Video.js 10. Keep Plyr for an existing 3.x player while you budget a migration, especially if its unified HTML5, YouTube, and Vimeo API already works for your site. Do not start a new integration on a security-only dependency.

We ran it

Lab card: what happened when we ran plyrScreenshot of plyr (plyr.io)
Install✓ · 20s588 packages · 347 MB
Build✓ · 31s
Testsn/ano test script
Repo154 files~10,635 lines of source · 0.9 MB · 2 CI workflows

Answers from our run

Does plyr build from source?

Dependencies installed in 20 seconds (588 packages), and the build succeeded in 31 seconds. We cloned commit de3eeb6 into a clean Debian container with 3 CPUs and no project-specific setup.

Does plyr have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use plyr?

New media-player projects: the maintainers explicitly direct new work to Video.js 10.

What are the alternatives to plyr?

Video.js, MediaElement.js, Shaka Player. Our Plyr run built in 31 seconds after a 588-package install, but it offered no test target and the maintainers now direct new projects to Video.

Setup4/520-second install and 31-second build, but 588 packages
Docs4/5Detailed API and options with a prominent migration warning
Community3/530,014 stars and a current release, but 935 open items
Maturity3/5Established v3 API is now deprecated and security-only

Discussed on

  1. hnPlyr – A simple HTML5, YouTube and Vimeo player5 points

Who it’s for

Teams maintaining a site that already depends on Plyr 3.x.
Developers who need one familiar control layer across native media, YouTube, and Vimeo while they plan a migration.
Sites that value customizable Sass and CSS properties without adopting a framework component.
Maintainers who can test provider behavior in real browsers despite the repository having no test command.

Who it’s NOT for

New media-player projects: the maintainers explicitly direct new work to Video.js 10.
Teams expecting feature development or routine bug fixes: Plyr is deprecated and now promises security updates only.
Release processes that require an executable upstream test suite: our measured commit had no tests script or target, so the test step was skipped.
Apps needing DASH or HLS playback in one package: the README integrates separate libraries such as Shaka Player, hls.js, or dash.js.
Sites that cannot allow a default third-party asset request: Plyr loads its SVG sprite from the project CDN unless you change the icon URL or inline the sprite.

Setup reality

Our sandbox installed commit de3eeb6 in 20 seconds, pulling 588 pnpm packages and using 347 MB on disk. The build succeeded in 31 seconds. There was no tests script or target, so no test suite ran. The checkout itself was 0.9 MB with 154 files and about 10,635 source lines.

The current package asks for Node 22.18 or Node 24.11 and newer, plus pnpm 12.4.2. Application use is lighter than the development tree: install the package and its CSS, or take prebuilt JavaScript and CSS from the CDN. Plain HTML5 playback needs no account or secret.

YouTube and Vimeo playback still depends on those providers, and DASH or HLS needs a separate streaming library. The default SVG control sprite comes from Plyr's CDN unless you self-host or inline it. Preview thumbnails also need images and a VTT file that you generate elsewhere.

Plyr 3.8.5 is for installed sites, not new ones

Plyr gives native audio and video, YouTube, and Vimeo a common control surface. The API normalizes play, pause, seeking, volume, captions, fullscreen, picture in picture, playback speed, and provider events. Its HTML stays close to standard media elements, while Sass and CSS custom properties handle the appearance. That remains a useful package for a site already built around Plyr 3.x.

The decision for a new site is already made by the maintainers. Plyr is deprecated, its support promise is security updates only, and both the README and package description point new projects to Video.js 10. There is an official migration guide for plain JavaScript and another for React. A familiar API and 30,014 GitHub stars do not outweigh that notice.

The 20-second install creates a 347 MB worktree

Our pnpm install completed in 20 seconds, adding 588 packages and taking 347 MB on disk. That is a large development tree for a repository whose checkout held 154 files, about 10,635 lines of source, and occupied 0.9 MB. The current package requires Node 22.18 or Node 24.11 and later, and pins pnpm 12.4.2 as its package manager.

Consuming Plyr is simpler than building it. An application can import the JavaScript module and CSS from npm, or use prebuilt files from the project CDN. Native HTML5 playback needs no service account. The default control sprite does make a CDN request unless you configure another icon URL, self-host the sprite, or inline it. That detail matters under a strict content security policy.

What happened when we ran it

Our run installed commit de3eeb6 in 20 seconds and built it in another 31 seconds. The sandbox used 3 CPUs, 8 GB of RAM, Node 22, no secrets, and no elevated privileges. Both available steps succeeded. Our method used a fresh container, so the 588-package count and 347 MB footprint include the development environment rather than the much smaller files a browser downloads.

There was no tests script or target, so the test step was skipped. That is different from a passing suite. Our scan also found 2 CI workflow files, no Dockerfile, no tests directory, and pnpm workspaces. We measured repository installation and compilation only. The run says nothing about playback compatibility, accessibility in a browser, streaming quality, provider uptime, or the size of the final JavaScript and CSS bundles.

One API still covers 3 playback sources

Plyr's best feature is the normalized surface across HTML5 media, YouTube, and Vimeo. A caller can listen for the same playback events and use the same high-level controls without writing a separate UI around each provider. VTT captions, keyboard shortcuts, internationalized control labels, poster images, preview thumbnails, fullscreen fallback, and responsive embeds are all documented in the 3.8.5 README.

Provider differences have not disappeared. YouTube and Vimeo still load their own APIs, and the README warns that not every underlying provider method will work through the exposed embed object. Mobile Safari can force native playback behavior, device-level volume rules still apply, and autoplay remains subject to browser policy. Test the actual combinations your audience uses instead of treating the shared Plyr API as proof of identical behavior.

DASH and HLS need a second player library

Plyr v3.8.5 can supply controls around adaptive streams, but it does not parse DASH or HLS by itself. The demos wire Plyr to dash.js, hls.js, or Shaka Player. Your application owns that integration, including manifest loading, errors, quality selection, and any encrypted-media setup. For a streaming product, the separate playback engine is the more consequential dependency.

Preview thumbnails bring another external preparation step. Plyr accepts VTT files that point at individual images or coordinates in a sprite, but it does not generate the frames. The README recommends sprites for download and compression efficiency. Teams need an encoding or media pipeline that creates those images, writes the VTT coordinates, and keeps both synchronized with each video.

Version 3.8.5 shipped while the backlog held 935 items

GitHub reported 935 open issues and pull requests on October 6, 2026, alongside 30,014 stars. Search results showed recent reports involving Safari playback, YouTube captions, early destruction of a player, and MP3 duration. These are user reports, not failures from our sandbox. The backlog is too large to read as a clean count of unresolved defects, but it is relevant when regular fixes are no longer promised.

Maintenance has not stopped completely. Version 3.8.5 was released on October 6, 2026, and the repository was pushed the same day. That release fixed caption language matching, volume restoration after unmuting from zero, and package import types. The date shows active transition work. The explicit security-only policy still defines what an adopter should expect after that release.

Video.js 10 is the supported destination

An existing Plyr site does not need a panic rewrite merely because 3.8.5 is deprecated. Our build passed, the browser package still has a documented API, and security updates are promised. Pin the version, test the media paths you use, self-host the sprite if policy requires it, and treat any new feature request as application code or migration work.

For a new project, use Video.js 10 as the baseline comparison because that is the successor named by Plyr itself. For an old project, plan the move before a browser or provider change forces the timing. The absence of an executable test target in our run is the sharpest reason to keep your own playback checks around the 3 sources your users depend on.

Alternatives

ProjectWhat it isPick it when
Video.js gh↗The active HTML5 player that Plyr's own maintainers recommend for new projects.pick this instead for any new build or when you are ready to follow the official Plyr migration guide.
MediaElement.jsA common media-element API across native formats and several hosted providers.pick this instead when broad provider adapters matter more than matching Plyr's existing controls.
Shaka PlayerA player library centered on DASH, HLS, Media Source Extensions, and encrypted media.pick this instead when adaptive streaming and DRM are core requirements.

What people are saying

  1. [velocity-scout] sampotts/plyr

Sources

  1. Plyr README and deprecation notice
  2. Plyr 3.8.5 release
  3. Plyr package manifest
  4. Plyr repository activity

More web reviews

dioramas · elpis · deepseek-whale-girl · floorplan-3d · taro · driver.js · the whole board →