Skip to content

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant