# Webamp：在浏览器中重新实现 Winamp 2

> 用 HTML5 和 JavaScript 重新实现 Winamp 2 的主窗口、均衡器和播放列表窗口，借助 Web Audio 实现播放、音量、声道平衡和均衡器，并渲染原有的经典 .wsz 皮肤，其文档称渲染效果与 Winamp 2.9 逐像素一致；Milkdrop 预设通过 Butterchurn 的 WebGL 移植版运行。它以 webamp npm 模块的形式发布，可嵌入网页，同一 monorepo 还运行着 webamp.org 和 skins.webamp.org 皮肤博物馆。其中的 webamp-modern 原型面向 Winamp 3/5 的现代皮肤，内含 MAKI 皮肤脚本解释器；MAKI 字节码格式原本没有公开文档，作者对其进行了逆向分析，并在仓库中写成文档。

- 类型：案例
- 目标：应用
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始资源：<https://github.com/captbaritone/webamp>
- 一手来源：<https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/webamp-winamp-reimplementation-case/>
- 记录 JSON：<https://awesomerea.org/resources/webamp-winamp-reimplementation-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/webamp-winamp-reimplementation-case/index.md)

## 使用条件与局限

- 审阅时的最新版本为 npm 上的 webamp 2.3.1，于 2026-06-16 发布；所审阅的 master 分支提交（2026-10-17）另含更新日志中列出、尚未发布的无障碍和 API 改动。README 称它可在新版 Edge、Firefox、Safari 和 Chrome 中运行。它重新实现的是 Winamp 的行为和皮肤渲染，并非恢复 Winamp 的代码；webamp-modern 仍是原型，尚有一份未完成的 MAKI 与皮肤功能清单。
- 无需原版 Winamp：Webamp 自带默认皮肤和示例音轨，用户也可载入自己的 Winamp 2 .wsz 皮肤、音频文件、Milkdrop 预设和 .eqf 均衡器预设。从其他域名获取的皮肤和音频须允许 CORS 访问，因为 Webamp 需要读取其内容。
- 开发使用 pnpm 和 Turborepo；.nvmrc 指定 Node.js 22，CI 则用 Node.js 20 构建所有包、执行代码检查和类型检查并运行 Jest 测试。这些测试检验的是 Webamp 自身的解析和渲染。编译 webamp-modern 的 MAKI 测试脚本时会调用仓库自带的 Winamp 5.66 mc.exe：在 Windows 上直接运行，在其他系统上通过 Wine 运行。
- 代码采用 MIT 许可，README 称 Winamp 的名称、界面和示例音频文件属于 Nullsoft。以下随附文件没有自己的许可声明：packages/webamp-modern/resources/maki_compiler 下的 Nullsoft MAKI 编译器（从 Winamp 3 alpha 8r 到 Winamp 5.66 的五个 mc.exe 版本、nscrt.dll 以及 MAKI .mi 库头文件），以 Winamp 默认皮肤命名的皮肤（base-2.91、Winamp 3 build 499、Winamp Modern 5.66）和用于演示与测试的第三方社区皮肤，llama 示例 MP3，以及 Winamp Modern Skins 教程 PDF。随附的 Perl 版 MAKI 反编译器采用 GPL-2.0 许可。

## 一手来源

1. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/README.md>
2. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/README.md#L62-L67>
3. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-docs/docs/05_features/05_skins.md>
4. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-docs/docs/05_features/03_equalizer.md>
5. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-docs/docs/05_features/02_mikdrop.md>
6. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-docs/docs/07_guides/01_cors.md>
7. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-docs/docs/12_changelog.md>
8. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp/docs/architecture.md>
9. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-modern/README.md>
10. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-modern/src/maki/maki-bytecode.md>
11. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-modern/snowpack-maki-plugin.js>
12. <https://github.com/captbaritone/webamp/tree/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-modern/resources/maki_compiler>
13. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/packages/webamp-modern/resources/maki_decompiler_1.1/COPYING>
14. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/.github/workflows/ci.yml>
15. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/.nvmrc>
16. <https://github.com/captbaritone/webamp/blob/f01369fc2d7aaa9366a3ba9ab0ad1db4b6417a40/LICENSE.txt>
17. <https://registry.npmjs.org/webamp/2.3.1>

## 同分区更多条目：应用

- [NOOP：基于蓝牙协议研究构建的离线 WHOOP 手环客户端](https://awesomerea.org/zh/resources/noop-whoop-ble-client-case/index.md) · 案例
- [NiimBlue：NIIMBOT 标签打印机的独立网页客户端](https://awesomerea.org/zh/resources/niimblue-niimbot-printer-client-case/index.md) · 案例
- [open_oura：基于逆向 BLE 协议、无需云端的 Oura Ring 客户端](https://awesomerea.org/zh/resources/open-oura-ring-protocol-case/index.md) · 案例
- [Sony Headphones Client：Sony 耳机控制协议的桌面客户端](https://awesomerea.org/zh/resources/sony-headphones-client-case/index.md) · 案例
- [cbyge：重建 C by GE 智能灯泡云端协议](https://awesomerea.org/zh/resources/cbyge-c-by-ge-protocol-case/index.md) · 案例
- [Clickwill：重建 iPod 音乐库数据库编辑功能](https://awesomerea.org/zh/resources/clickwill-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
