[GH-ISSUE #462] SPlayer 3.0.0-beta2 扫描本地音乐时遇到问题(命令行报错) #253

Closed
opened 2026-02-27 07:10:55 +03:00 by kerem · 1 comment
Owner

Originally created by @KIDult2226 on GitHub (Sep 15, 2025).
Original GitHub issue: https://github.com/imsyy/SPlayer/issues/462

是网页端还是客户端

Appimage客户端

当前系统环境

ArchLinux

当前 Node.js 及 npm 版本

v24.7.0 / 11.6.0

当前版本

3.0.0-beta2

具体信息

扫描本地音乐遇到问题如图

Image

命令行输出如下

14:40:59.396 › 📂 Fetching music files from: /home/kidult226/音乐
14:40:59.400 › 📂 Fetching music files from: /home/kidult226/音乐
14:41:03.948 › Error fetching music metadata: InvalidCharacterError: Invalid character
at atob (node:buffer:1302:13)
at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62)
at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40)
at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61
at Array.map ()
at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32)
at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13)
at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9)
at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13)
at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9)
14:41:03.949 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character
at atob (node:buffer:1302:13)
at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62)
at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40)
at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61
at Array.map ()
at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32)
at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13)
at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9)
at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13)
at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9)
14:41:04.521 › Error fetching music metadata: InvalidCharacterError: Invalid character
at atob (node:buffer:1302:13)
at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62)
at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40)
at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61
at Array.map ()
at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32)
at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13)
at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9)
at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13)
at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9)
14:41:04.522 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character
at atob (node:buffer:1302:13)
at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62)
at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40)
at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61
at Array.map ()
at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32)
at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13)
at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9)
at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13)
at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9)

GPT5的回复,供参考,我准备解包appimage之后尝试一下:

我帮你查过了,这个 InvalidCharacterError 其实是 music-metadata 在解析 FLAC/OGG 文件时遇到的一个已知问题——
原因是有些 FLAC 文件的封面图(METADATA_BLOCK_PICTURE)被错误地放在了 Vorbis Comment 里,并且是非标准的 Base64 数据。
atob() 在解码时遇到非法字符,就直接抛错了。


解决方法

1. 升级 music-metadata

这个问题在 v4.7.0 之后已经修复过一次,如果你用的是旧版本,先升级:

npm install music-metadata@latest

或者如果是 Electron 打包的,把依赖里的 music-metadata 更新到最新版本再重新打包。


Originally created by @KIDult2226 on GitHub (Sep 15, 2025). Original GitHub issue: https://github.com/imsyy/SPlayer/issues/462 ### 是网页端还是客户端 Appimage客户端 ### 当前系统环境 ArchLinux ### 当前 Node.js 及 npm 版本 v24.7.0 / 11.6.0 ### 当前版本 3.0.0-beta2 ### 具体信息 扫描本地音乐遇到问题如图 <img width="2559" height="1430" alt="Image" src="https://github.com/user-attachments/assets/3d6e402e-96ed-406c-957a-6099c73f3bca" /> 命令行输出如下 14:40:59.396 › 📂 Fetching music files from: /home/kidult226/音乐 14:40:59.400 › 📂 Fetching music files from: /home/kidult226/音乐 14:41:03.948 › ❌ Error fetching music metadata: InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map (<anonymous>) at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:03.949 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map (<anonymous>) at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:04.521 › ❌ Error fetching music metadata: InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map (<anonymous>) at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) 14:41:04.522 › Error occurred in handler for 'get-music-files': InvalidCharacterError: Invalid character at atob (node:buffer:1302:13) at VorbisPictureToken.fromBase64 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/Vorbis.js:11:62) at VorbisParser.addTag (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ogg/vorbis/VorbisParser.js:73:40) at file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:61 at Array.map (<anonymous>) at FlacParser.parseComment (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:105:32) at async FlacParser.postId3v2Parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/flac/FlacParser.js:43:13) at async FlacParser.parseID3v2 (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:38:9) at async FlacParser.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/id3v2/AbstractID3Parser.js:21:13) at async ParserFactory.parse (file:///tmp/.mount_splayeFeREoL/resources/app.asar/node_modules/music-metadata/lib/ParserFactory.js:84:9) GPT5的回复,供参考,我准备解包appimage之后尝试一下: 我帮你查过了,这个 `InvalidCharacterError` 其实是 **music-metadata** 在解析 FLAC/OGG 文件时遇到的一个已知问题—— 原因是有些 FLAC 文件的封面图(`METADATA_BLOCK_PICTURE`)被错误地放在了 Vorbis Comment 里,并且是非标准的 Base64 数据。 `atob()` 在解码时遇到非法字符,就直接抛错了。 --- ## 解决方法 ### 1. 升级 `music-metadata` 这个问题在 **v4.7.0** 之后已经修复过一次,如果你用的是旧版本,先升级: ```bash npm install music-metadata@latest ``` 或者如果是 Electron 打包的,把依赖里的 `music-metadata` 更新到最新版本再重新打包。 ---
kerem 2026-02-27 07:10:55 +03:00
  • closed this issue
  • added the
    过期
    label
Author
Owner

@github-actions[bot] commented on GitHub (Nov 27, 2025):

👀 该 Issue 已经 30 天没有任何更新啦
如果问题仍然存在,请回复此评论,否则将在 7 天后自动关闭

<!-- gh-comment-id:3584404010 --> @github-actions[bot] commented on GitHub (Nov 27, 2025): 👀 该 Issue 已经 30 天没有任何更新啦 如果问题仍然存在,请回复此评论,否则将在 7 天后自动关闭
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SPlayer#253
No description provided.