# aplayer-ts

> TypeScript interface for aplayer

Latest version **2.6.1** (published 2026-09-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install aplayer-ts
pnpm add aplayer-ts
yarn add aplayer-ts
bun add aplayer-ts
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.6.1 |
| Published | 2026-09-21 |
| First published | 2022-03-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 151.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | liuly |
| Maintainers | liuly0322 |
| Keywords | player, music, html5, typescript |

## Links

- npm: https://www.npmjs.com/package/aplayer-ts
- Repository: https://github.com/liuly0322/aplayer-ts
- Homepage: https://github.com/liuly0322/aplayer-ts#readme
- Issues: https://github.com/liuly0322/aplayer-ts
- npm.io page: https://npm.io/package/aplayer-ts

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 2.6.1 (latest) — 2026-09-21
- 2.6.0 — 2025-01-17
- 2.5.1 — 2025-01-08
- 2.5.0 — 2025-01-01
- 2.4.5 — 2024-03-12
- 2.4.4 — 2024-03-12
- 2.4.1 — 2024-03-12
- 2.4.0 — 2024-03-11
- 2.3.1 — 2024-03-10
- 2.3.0 — 2024-03-10
- 2.2.1 — 2024-03-08
- 2.2.0 — 2024-03-08
- 2.1.0 — 2024-03-07
- 2.0.1 — 2024-03-07
- 2.0.0 — 2024-03-06
- … 15 more at https://npm.io/package/aplayer-ts/versions

## README

<p align="center">
<img src="https://i.imgur.com/LnPvZvO.png" alt="ADPlayer" width="100">
</p>
<h1 align="center">APlayer-ts</h1>

> Wow, such a lovely HTML5 music player

[APlayer](https://github.com/MoePlayer/APlayer/), but:

- JavaScript bundle size **from 58.74 kB to 23.86 kB** for basic usage. See [bundle size](#bundle-size) for measured configurations and this [blog post](https://blog.liuly.moe/posts/tree-shaking) for the approach;
- TypeScript interface support;
- Fixes [APlayer#283](https://github.com/DIYgod/APlayer/issues/283);
- ESM import/export with zero dependencies.

> The name 'APlayer-ts' might be a bit misleading, well I just modified APlayer for my personal usage years ago and picked a random name :)

## Bundle size

Measured on 2026-09-21 with Node.js 22.13.0, the locked Vite 5.1.5 / esbuild 0.19.12 toolchain, and upstream [`aplayer@1.10.1`](https://www.npmjs.com/package/aplayer/v/1.10.1). All entries use the same Vite production defaults with `modulePreload.polyfill: false`. Sizes are emitted, minified asset bytes divided by 1,000 (kB); gzip uses Node's `gzipSync` defaults, separately for JS and CSS.

| Entry | Player | JS | JS gzip | CSS | CSS gzip |
| --- | --- | ---: | ---: | ---: | ---: |
| Basic | APlayer-ts | 23.860 kB | 7.954 kB | 10.205 kB | 2.179 kB |
| Basic | APlayer 1.10.1 | 58.736 kB | 14.459 kB | 12.415 kB | 2.477 kB |
| Demo | APlayer-ts | 26.069 kB | 8.586 kB | 10.205 kB | 2.179 kB |
| Demo | APlayer 1.10.1 | 59.170 kB | 14.712 kB | 12.415 kB | 2.477 kB |
| All plugins | APlayer-ts | 27.008 kB | 8.550 kB | 12.030 kB | 2.465 kB |
| All plugins | APlayer 1.10.1 | 58.736 kB | 14.459 kB | 12.415 kB | 2.477 kB |

## Usage

Basic usage:

```TypeScript
import APlayer from 'aplayer-ts'
import 'aplayer-ts/src/css/base.css'

const instance = APlayer()
    .init({ /* refer to the original APlayer doc */ })
```

### API difference

Some APIs have been modified to improve tree-shaking and reduce bundle size.

1. `fixed` option is removed, use `APlayerFixedModePlugin` instead.

```TypeScript
import APlayer, { APlayerFixedModePlugin } from 'aplayer-ts'
import 'aplayer-ts/src/css/base.css'
import 'aplayer-ts/src/css/fixed.css' // remember to import the css

const instance = APlayer()
    .use(APlayerFixedModePlugin)
    .init({ /* refer to the original APlayer doc */ })
```

2. `list.add`, `list.remove` and `list.clear` are by default removed, install their plugins if you want to use:

```TypeScript
import APlayer, { addMusicPlugin, removeMusicPlugin, clearMusicPlugin } from 'aplayer-ts'
import 'aplayer-ts/src/css/base.css'

const instance = APlayer()
    .use(addMusicPlugin)
    .use(removeMusicPlugin)
    .init({ /* refer to the original APlayer doc */ })

instance.list.add({ /* new audios here */ })
```

3. HLS is by default removed, install `APlayerHlsPlugin` if you want to use:

```TypeScript
import APlayer, { APlayerHlsPlugin } from 'aplayer-ts'
import 'aplayer-ts/src/css/base.css'

const instance = APlayer()
    .use(APlayerHlsPlugin)
    .init({ /* refer to the original APlayer doc */ })
```

## Development

```bash
pnpm dev         # start a demo website server
pnpm build       # build the demo website (to view the output size)
```

---
_Source: https://npm.io/package/aplayer-ts · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
