npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@macrowave/player

v1.0.9

Published

Embeddable live streaming player for Macrowave - A lightweight web component for embedding live audio/video streams

Readme

@macrowave/player

Embeddable live streaming player for Macrowave - A lightweight web component for embedding live audio/video streams on any website.

Installation

Via CDN (Recommended)

The easiest way to use the Macrowave player is via CDN:

<!-- Using jsDelivr (Recommended) -->
<script src="https://cdn.jsdelivr.net/npm/@macrowave/player"></script>
<macrowave-player station="username/station-slug"></macrowave-player>

Alternative CDNs:

<!-- Using unpkg -->
<script src="https://unpkg.com/@macrowave/player"></script>
<macrowave-player station="username/station-slug"></macrowave-player>

<!-- Using esm.sh -->
<script src="https://esm.sh/@macrowave/player"></script>
<macrowave-player station="username/station-slug"></macrowave-player>

Via npm

If you're using a bundler, you can install via npm:

npm install @macrowave/player

Then import in your JavaScript:

import '@macrowave/player';

Usage

Basic Example

<!DOCTYPE html>
<html>
<head>
  <title>My Stream</title>
</head>
<body>
  <h1>Listen Live</h1>

  <!-- Load the player script -->
  <script src="https://cdn.jsdelivr.net/npm/@macrowave/player"></script>

  <!-- Add the player element -->
  <macrowave-player station="username/station-slug"></macrowave-player>
</body>
</html>

Configuration Options

The player supports several attributes:

<macrowave-player
  station="username/station-slug"
  theme="dark"
  autoplay="false"
></macrowave-player>

Attributes

  • station (required): The station identifier in format username/station-slug
  • theme (optional): Player theme - "light" or "dark" (default: "dark")
  • autoplay (optional): Auto-start playback - "true" or "false" (default: "false")

Styling

The player uses Shadow DOM for style encapsulation. You can control its container size with CSS:

<style>
  macrowave-player {
    width: 100%;
    max-width: 800px;
    height: 600px;
    display: block;
    margin: 0 auto;
  }
</style>

Responsive Design

<style>
  macrowave-player {
    width: 100%;
    height: 400px;
  }

  @media (min-width: 768px) {
    macrowave-player {
      height: 600px;
    }
  }
</style>

Programmatic Control

You can control the player via JavaScript:

<macrowave-player id="my-player" station="username/station-slug"></macrowave-player>

<script>
  const player = document.getElementById('my-player');

  // Change station dynamically
  player.setAttribute('station', 'other-user/other-station');

  // Change theme
  player.setAttribute('theme', 'light');

  // Enable autoplay
  player.setAttribute('autoplay', 'true');
</script>

Version Pinning

For production use, we recommend pinning to a specific version:

<!-- Pin to specific version -->
<script src="https://cdn.jsdelivr.net/npm/@macrowave/[email protected]"></script>

<!-- Or use semver range (auto-updates patch versions) -->
<script src="https://cdn.jsdelivr.net/npm/@macrowave/player@1"></script>

Browser Support

The player works on all modern browsers:

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

Note: Internet Explorer is not supported.

Performance

  • Single JavaScript file (~590KB, ~163KB gzipped)
  • Lazy loads when visible
  • Efficient WebRTC streaming via LiveKit
  • No external dependencies

Security

  • Uses Shadow DOM to prevent style/script conflicts
  • All communication over HTTPS
  • No access to your site's cookies or data

Platform Support

The player works on popular platforms including:

  • WordPress
  • Wix
  • Squarespace
  • Webflow
  • Any HTML-based website

For detailed integration guides, see the full documentation.

License

MIT

Support

Contributing

This package is part of the Macrowave monorepo. For contributing guidelines, see the main repository.