Skip to content
This repository was archived by the owner on Jul 17, 2026. It is now read-only.

fix(web): embed missing metadata and cover art when downloading songs - #1102

Open
axyn45 wants to merge 3 commits into
SPlayer-Dev:devfrom
axyn45:fix/web-download-metadata
Open

fix(web): embed missing metadata and cover art when downloading songs#1102
axyn45 wants to merge 3 commits into
SPlayer-Dev:devfrom
axyn45:fix/web-download-metadata

Conversation

@axyn45

@axyn45 axyn45 commented Jun 16, 2026

Copy link
Copy Markdown

修复内容

SPlayer网页端在下载音乐时直接保存了源文件,无法像桌面端那样将歌曲的元数据(标题、歌手、专辑、歌词)以及封面图片嵌入到下载的文件中。**

主要改动

  1. package.json

    • 引入了 JS ID3 标签写入库 browser-id3-writer, 无依赖项。
  2. src/core/resource/DownloadManager.ts

    • 动态解析与注入元数据: 在浏览器下载分支中,若文件格式为 MP3 且启用了元数据下载配置,将通过 axios 异步拉取歌曲和封面图片的 ArrayBuffer 二进制数据。
    • 标签写入: 使用 browser-id3-writer 在内存中为 MP3 音频写入 TIT2(标题)、TPE1(歌手)、TALB(专辑)、TPE2(专辑歌手)和 USLT(歌词)等 ID3v2 框架,并嵌入 APIC(封面图片)。

测试

  • 运行 pnpm lintpnpm format 通过。
  • pnpm build 打包后的 Web 静态资源与 Electron 原生客户端均编译成功。
axyn45 added 3 commits June 16, 2026 21:36
… in browser

- Introduce browser-id3-writer for tag injection when downloading MP3 songs in browser (non-Electron environment).
- Fetch song and cover image ArrayBuffers asynchronously to write TIT2, TPE1, TALB, TPE2, and USLT frames.
- Add network and CORS fault tolerance, automatically falling back to original URL-based download on error to guarantee reliable delivery.
- Fix missing album artist metadata when downloading FLAC audio files in browser environment.
- Add albumArtist option to FlacMetadata interface and write ALBUMARTIST tag to Vorbis Comment.
@github-actions

Copy link
Copy Markdown

👀 该 Pull Request 已经 30 天没有活动啦
如仍需继续处理,请回复此评论,否则将在 7 天后自动关闭

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

1 participant