/another-player

🎬 Just another player with a focus on DX

Primary LanguageTypeScript

Another Player (WIP)

just another player with good DX

Design Goals

  • Web component base. should be close to web standards.

  • Should be "Headless" so that can be fully customized & easily integrates with frameworks like Tailwind and Windi

  • APIs similar to those in Vue.js

    import { createPlayer } from "@another-player/core";
    
    const player = createPlayer({
      src: "https://big-buck-bunny.mp4",
    }).mount("#player");
  • Rich plugin system with APIs similar to those in Vite and Rollup

    import { createPlayer, definePlugin } from "@another-player/core";
    
    const myPlugin definePlugin(options);
    
    const player = createPlayer({
      src: "https://big-buck-bunny.mp4",
    }).use([
      myPlugin(),
    ]).mount("#player");
  • Support for mainstream streaming formats such as DSAH and HLS through the use of plugins

  • Support for Multi-DRM

    • FairPlay as recently implemented in HLS.js

Tech Stack

  • PNPM as the package manager; run pnpm i to install dependencies
  • NX as the monorepo workspace; run pnpm nx graph to see a diagram of the dependencies of the projects
  • Typescript as the language
  • Vite as the build tool