前段时间我写了一个快速的小节点命令行实用程序,将XML格式的itunes播放列表转换为m3u,xspf等,这样我就可以在工作的linux盒子上使用它们,android phone *等等。
*我有一个25+千兆字节的音乐收藏,doubletwist等只是龙骨而死并试图与我的mac同步
起初这很好,但随着我的音乐收藏增长,我遇到了障碍:没有媒体播放器可以找到任何带有非英语unicode字符的文件,例如ñ,í和几乎任何日本汉字。它并不是导致这个问题的每一个角色,但在很大程度上它是一个东西。
由于itunes文件路径是部分url编码的(并且不需要匹配目标格式的约束),并且需要部分替换为目标机器上的正确路径,因此我有以下代码:处理文件路径(剥离不相关的东西):
decodeURIComponent, decodeURI
我已经尝试了file:///Users/username/Music/iTunes/iTunes%20Media/Music/Compilations/Chronicles%20of%20Time/3-05%20Melodi%CC%81a%20de%20la%20montan%CC%83a%20(feat.%20Doug%20Perry%20&%20Matheus%20S.%20Garcia%20Souza).m4a
,以及我上面引用的自定义函数。以下是XML文件中的示例:
/home/username/Music/Compilations/Chronicles of Time/3-05 Melodía de la montaña (feat. Doug Perry & Matheus S. Garcia Souza).m4a
转换为:
3-05 Melodía de la montaña (feat. Doug Perry & Matheus S. Garcia Souza).m4a
哪个看起来不错,但是VLC,克莱门汀等都找不到。这是直接来自Nautilus的文件名:
decodeURIComponent
在路径中引用的目录中。请注意,由{{1}}解释的变形位于'a'而不是'n'(我的函数不会产生错误,因此本身不是问题)。 如何修改这些以便媒体播放器可以找到曲目?