是网页端还是客户端
Appimage客户端
当前系统环境
ArchLinux
当前 Node.js 及 npm 版本
v24.7.0 / 11.6.0
当前版本
3.0.0-beta2
具体信息
扫描本地音乐遇到问题如图
命令行输出如下
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 更新到最新版本再重新打包。