本文也发布在我的博客:利用「导入播放列表」来导入网易云音乐歌单到 Apple Music - 熊猫小A的博客

OK,事情是这么个起因:前段时间网易云突然下架了周杰伦的一些歌曲,导致我一年多以前写的旧文:用 Workflow 从网易云音乐迁移数据至 Apple Music 或 Spotify 又被网友翻了出来。然而该文章年久失修,有些部分已经过时了。

很开心我做的东西有帮助到需要的人。上面提到的文章里介绍了使用 Workflow 来迁移播放列表到 Apple Music 的方法1 。有几个问题仍然是没有办法解决的:匹配精度低或者匹配不到、无法增量同步、无法双向同步。虽然如此,在某些场景下还是有用的,而且用起来还算方便。今天介绍一个可能被人们忽略了的,iTunes 自带的导入播放列表的方法。

不过也不要高兴太早,本文仍然没解决双向同步的问题,但也不要沮丧,问题要解决,只是一个一个来。今天介绍这个方法不存在匹配精度低或者匹配不到的问题,并且算是提供了一种增量同步的方法。

本文的环境是 Windows 10 + iTunes 12.7 for PC + 网易云音乐 2.2.3 for PC。某些功能需要 Windows 环境,但有移植到其它平台的潜力,未测试其它版本的 iTunes 与网易云音乐客户端。

iTunes 导入导出播放列表

这俩功能是 iTunes 自带的,选中某播放列表,点击 文件 - 资料库 就能看到这两个功能。

导入导出播放列表

打开导出的 txt 文件,是一堆格式化的信息。txt 看起来会比较杂乱,你可以全选内容,复制,打开一个空的 Excel 表格,直接粘贴,这样方便查看格式化的内容。

导出的内容

很明白了,第一行是表头,可见数据非常详细。下面就是播放列表中每首曲子的具体信息。用这些数据可以做不少文章,不过目前关注最后一项:「位置」,展示了本首曲子的音乐文件在磁盘上的路径(如果你有下载到本地的话)。

导入播放列表只是一个反过来的过程。首先你要有一个类似于上面 txt 的导出文档,然后在 文件-资料库 选择导入播放列表即可。这个 txt 是可以由我们自己制作的,所以我们可以看到很多可能性。

重点在这里:这个 txt 的构成需要类似于你导出的那些 txt,即第一行是表头;从第二行开始是每首曲子的信息。表头不能缺项,但是顺序不重要。不同的项之间用 tab 隔开。没有信息的项用 tab 留空即可。并不是所有的信息都是必要的,但是:如果你要添加的音乐来自本地磁盘,你需要在「位置」这一项指明文件路径;如果你要添加 Apple Music 里的音乐,那么位置这里可以保持空白,但你需要在「种类」这里指明是 Apple Music AAC 音频文件,并保证「名称」这一项正确。

自动生成上文所述的 txt

假设你有一个文件夹,里面包含了你喜欢的一大堆音乐,这些音乐你想要把它们作为一个播放列表添加进 iTunes 里,应该怎么做?

(当然可以直接添加文件/文件夹到资料库,但这里说的是用 txt 文件来导入的方法,看到后面你会知道为什么要这样)

像上面说的,你只需要创建一个 txt,第一行是表头,然后在下面每一行填上歌曲信息,然后在 iTunes 里导入就完事了。一首两首问题倒是不大,歌曲多起来呢?

注意,我上面说了,并不是每个信息都是必要的,事实上,如果你要从本地磁盘导入音乐,只需要歌曲文件路径就够了 。OK,这种重复性的工作在 Windows 上一个批处理脚本就完事了,在 Mac 上我相信有更多的工具可以完成,比如 Automator 啥的。

新建一个文本文件,在里面键入:

  
echo 位置 名称 艺人 作曲 专辑 归类 作品 乐章编号 乐章 乐章名称 类型 大小 时间 光盘编号 光盘统计 音轨编号 音轨统计 年份 修改日期 添加日期 比特 采样速率 音量调整 种类 均衡 注释 播放次数 上次播放时间 跳过次数 上次跳过时间 我的评分 > PlayList.txt
for %%s in (*.mp3 *.aac) do (echo %cd%\%%s>>PlayList.TXT)

另存为 GenPlayList.bat 。把这个文件放在存储了音乐的文件夹里,双击运行,就会生成一个叫 PlayList.txt 的文件,把这个文件名改成 你要的播放列表名.txt,去 iTunes 里选择这个文件导入就好了。在导入的播放列表里全选右键就能全部上传到 iCloud 音乐资料库。

网易云音乐这边的事

到此之前都没有说到网易云,但其实整个思路已经很明显了:我们只需要从网易云里面把对应的播放列表里的歌全部下载下来,然后做一个 txt 往 iTunes 里面一导入就完事了,再借助 iCloud 音乐资料库即可把音乐传到云端,那么在哪里都能听。

其实网易云只扮演了下载工具这个角色。但是我发现网易云音乐(我在用的版本)有一个比较好的点:当你下载了音乐之后,如果把音乐文件移动到了下载目录的子目录里,那么网易云音乐仍然能够找到下载文件的位置。这为我们手动管理音乐创造了条件。

来看一个实际操作的例子

设想这么一个场景:目前你的电脑上网易云音乐没有下载任何音乐(也就是目前你的网易云音乐下载目录空空如也),你突然对一个歌单(名字叫「简直是为我而建的歌单」)很感兴趣,决定把它导进 Apple Music,但是你发现你听的歌都很小众,Apple Music 完全不能理解,所以不能用我之前介绍的 Workflow 来做,该怎么办?我描述一下解决过程。

  1. 首先在网易云音乐中播放列表页点击 下载全部,然后一首一首的歌就出现在了你的网易云音乐下载目录里。
  2. 把上文提到的那个 GenPlayList.bat 文件也放在下载目录里,双击运行。
  3. 把生成的 PlayList.txt 改名为 简直是为我而建的歌单.txt 。
  4. 在 iTunes 中选择导入播放列表,使用上面的 简直是为我而建的歌单.txt 。
  5. iTunes 里出现了这个歌单!全选这个歌单里的歌曲,右键点击「添加到 iCloud 音乐资料库」。
  6. 然后去网易云音乐下载目录里创建一个文件夹,名字叫「 简直是为我而建的歌单」。
  7. 把你下载的音乐剪切-粘贴到第 6 步创建的文件夹里。
  8. 检查一下网易云音乐里这个歌单的下载情况,仍然显示的已下载。这时候你的网易云音乐下载目录里除了有一个名字叫「 简直是为我而建的歌单」的文件夹外别无他物,非常整洁。
  9. Perfect!
导入过程演示

等等,如果后来网易云音乐歌单里又添加了一些歌曲进去呢?我要如何 增量地导入这些歌曲

OK,其实与上面的步骤大同小异。

  1. 在网易云音乐中点击全部下载。你会发现后来你添加的歌曲出现在了网易云音乐下载目录中。
  2. 执行上面的 1-5 步,你会发现 iTunes 里出现了一个重复的播放列表,其中一个里面包含了你新添加的歌曲。全选这些新添加的歌曲,右键添加到播放列表,OK,这些歌曲就出现在了你上次创建的播放列表里。这时候 iTunes 里的播放列表又与网易云里一样了,嗯嗯不错。
  3. 去把你网易云音乐下载目录里的音乐文件扔进上次创建的「 简直是为我而建的歌单」文件夹里。Done!
增量添加过程演示

如此下来,我们(有些迂回地)解决了增量同步的问题。一个注意的点,iTunes 只识别 UTF-8 编码的文件,所以记得把生成的 txt 转为 UTF-8 编码~

过程可能比较繁琐一点,但真的一点也不难,按照上面的过程分分钟搞定。

还有,我写这样的教程只是为大家多提供一点可能性罢了,please 不要跑来说我闲得慌,乐在其中嘻嘻。