用 Workflow 从网易云音乐迁移数据至 Apple Music 或 Spotify 您所在的位置:网站首页 applemusic的歌单怎么导入网易云 用 Workflow 从网易云音乐迁移数据至 Apple Music 或 Spotify

用 Workflow 从网易云音乐迁移数据至 Apple Music 或 Spotify

2023-11-05 11:31| 来源: 网络整理| 查看: 265

Matrix 是少数派的全新产品,一个纯净、小众的写作平台,我们主张分享真实的产品体验,有实用价值的互联网领域经验、思考。欢迎忠于写作,喜好分享的朋友参与内测。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

本文内容仅代表作者本人观点,文章对标题和排版略作修改,原文链接。

关于音乐平台的选择,通常可以分为两类人:一是只关心纯净的聆听体验,这类人的音乐平台是Apple Music、Spotify 等;二是在前者之外还喜欢有一些社交元素,比如在评论区参与讨论,这类人的音乐平台则是网易云音乐、虾米等。我之前一直在使用网易云音乐,直到我慢慢意识到听歌是一件非常私人的事,纯净的聆听体验于我可能更重要。

前段时间 Apple Music 推出了针对大学生的特价活动,再加上 Apple Music 相对全面的曲库,想必很多人心里已经在痒痒了,跃跃欲试;另一方面 Spotify 在音乐爱好者之间口碑一向不错,高质量的推荐和基于场景的歌单符合许多人对优秀播放器的定义。但即使这样,我也难以做到从网易云音乐无痛转移,原因则是我在网易云音乐收集的大量歌单。歌单对很多人都很重要,经过长时间聆听、筛选,最终留下来的一定是最能体现自己音乐品味的那部分。这篇文章就为这样一群人而写:想要尝试新的平台、但是无论如何不能放弃自己的珍藏的这群人。

转移大量的音乐,一首一首手动添加自然是不行,这里介绍借用自动化工具 Workflow 和 IFTTT 进行迁移的方法。

2017 年 11 月 29 日更新:修改了转移歌单所使用的网易云音乐 API。

如何将歌单转移到 Apple Music

先将 Workflow 链接放到这里: 网易云音乐➡️ Apple Music。

使用时在网易云音乐客户端里复制歌单分享链接,然后运行这个 Workflow。

分析

取得对应歌单信息的最好方法是利用平台的 API,API 信息查询官方文档一般能找到。对网易云音乐来说,可以用以下 API 获得歌单信息。

GET http://music.163.com/api/v3/playlist/detail?id=歌单ID&n=5000

这个 API 里只有一个未知参数:歌单 ID 。这个 ID 也很容易取到,我们给别人发送歌单链接的时候,复制出来的链接都是这样的形式:

 iOS版:http://music.163.com/playlist/437754500/45408568?userid=45408568桌面版:http://music.163.com/#/m/playlist?id=437754500&userid=45408568

对比这二者,在 Playlist 后面都能发现一串数字,这就是歌单 ID。在实际的情况中,歌单位数不一定是 9 位,可能是其它位数「感谢微博上的 @Mini_Goooo」。取数的方法很多,可以用 Split Text 按照 / 一个个截断再选择到目标,这里用更简单高效的正则匹配的方法,也就是使用 Match Text 这个动作,Pattern填正则表达式:

\d{4,11}

这个表达式的意思就是取得字串中连续的 4 到 11 位数字。这样取的原因是可以避开前面的的 163,也能囊括目前我遇到的大部分歌单 ID,如果你要转移的歌单 ID 位数不在这个范围内,对应修改上面括号内的数使之符合你的歌单 ID 位数即可。URL 的格式是歌单 ID 在前面,取第一个结果也就取得了歌单 ID。

006tLtW4jw1fap2x593h4j30ko0k8ta9.jpg

重写 API 到这里:

GET http://music.163.com/api/v3/playlist/detail?id=歌单ID&n=5000

在这个 URL 后面跟上 Get Contents of URL,Method 选择 GET,运行成功将返回 JSON 格式的数据块。我们只用关注里面的几个 Key:

playlist,里面包含了返回的歌单数据;playlist 下名叫 name 的 key ,里面包含了歌单名称;playlist 下名叫 tracks 的 key , 里面包含了每首歌的信息;tracks 下又有一个名叫 name 的 key ,里面包含的是歌曲名;tracks 下名叫 ar 的 key ,里面包含歌曲的演奏者。

这些信息在 Apple Music 里创建歌单以及添加歌曲时都会用到。所以用多个 Get Dictionary Value 来取出来。这里解释一下为什么 ar 要取 First Item,这是因为有的歌曲演奏者不止一个,为了防止在运行过程中需要手动选择哪一个,就索性只用第一个演奏者。在实际的 iTunes 匹配时一个演唱者也够了。

需要遍历的是歌曲,歌曲信息包含在 tracks 里,于是我们需要在 tracks 后面跟上 Repeat With Each ,对每首歌都分别取得歌曲名和演奏者,然后在 iTunes 里匹配,取得的结果添加到Apple Music 里,这就是基本逻辑。这里要指出在使用前请保证 Search iTunes Store 里的 Country 要和你的 Apple Music 的所在区域对应,否则会报错。

在实际的应用中,有可能出现匹配不到歌曲的情况,这种情况我们也要处理。这里借用了我之前在微博上看到的一个 Workflow 的思路,来源记不清了。总的来说如果没有找到歌曲,Search iTunes Store 这一步必然不返回结果,于是在这一步后面接上一个 Count Items ,如果值等于 0 ,那就在失败记录里添上一条;如果值不等于零就执行添加到 Apple Music 的动作。 Workflow 结束的地方再把这个失败记录展示出来,便于后期再手动添加。整个 Workflow 就解析到这里。

006tLtW4jw1fadzkmfz2rj30ku1ysn3q.jpg

注意事项与存在的问题

经反应有人会遇到这些问题,我把我现在听说过的总结一下。

提示遇到「未知错误」请检查 Workflow 是否有权限访问你的 Apple Music 资料库,并保证 Search iTunes Store 里的 Country 与你的 Apple Music 所在区域一致。提示「The requested operation is not enabled for this device」这应该是一个 Apple Music 方面的 Bug,你可以尝试重启你的设备,或者关闭再重新开启 iCloud 音乐资料库。一般来说尝试这两步后就能解决。Workflow 中途停止检查你要转移的歌单 ID 位数是否出现了我前文说到的问题,另外这个 Workflow 是用来迁移歌单的,不适用于单曲。适用单曲的版本请看文末。

网易云音乐是做得很好的国内音乐平台,但由于一些历史遗留原因,歌曲信息有不少错误、缺失、张冠李戴的情况,再加上 Apple Music 自身的曲库问题,歌曲匹配不到的可能性还是很高的。如果你的 Apple Music 是中区的,平常用网易云音乐听的歌又比较小众,失败率就进一步升高。这一点我也没有办法,只能靠这俩公司自己去完善自己的数据库。

如何将歌单转移到 Spotify分析

有了上文的铺垫,我们已经能够获取到歌单信息了。但是如果要转移到的是 Spotify 还有一点困难:Workflow 中没有对应的 Spotify 的动作。这里可以借助 IFTTT 来完成,用 IFTTT 其实有好处,就是运行速度比较快。

首先使用 Workflow 获取到歌单的歌单名称,每首歌的歌曲名和每首歌的演唱者,一首一首地传入 IFTTT。

Workflow 链接:网易云音乐 ➡️ Spotify

006tLtW4jw1fajsuxcuu3j31kw16odqq.jpg

然后在 IFTTT 中制作一个 Applet,触发条件就是 Workflow 中的 trigger,执行动作是添加到 Spotify,对应填入歌单名,歌曲名和歌手。点击 Workflow 中 Trigger IFTTT Applet 这一步中的 Create Recipe,跳转到 IFTTT 中,如图填写信息即可。

006tLtW4jw1fajt41sqsaj315k16gdlt.jpg

Bonus:如果要转移单曲呢?

经过了前面的分析和实践,转移单曲也是很简单了,不过是改变一下使用的 API 和解析数据的方式。

转移网易云音乐单曲到 Apple Music

Workflow 链接:网易云音乐 ➡️ Apple Music 单曲版

使用方式,在网易云音乐里复制单曲分享链接,然后运行这个 Workflow。如果添加失败将会将这首歌的信息放进你的提醒事项,方便你后续手动再添加。

转移网易云音乐单曲到 Spotify

Workflow 链接:网易云音乐 ➡️ Spotify 单曲版

同样需要借助 IFTTT 来添加歌曲。在 Workflow 中取得歌曲信息后如图设置 Trigger:

006tLtW4jw1fap31ifh24j30ku0gs764.jpg

然后点击 Create Recipe 跳转到 IFTTT 里创建对应的 Applet 即可。

006tLtW4jw1fap32bq9tzj315y112qal.jpg

结语

Apple Music、Spotify、网易云音乐三家各有所长,分享本文的目的是希望大家能更无障碍地愉快玩耍。

另一方面,Workflow 于我而言是能力非凡的自动化工具,工具放在这里,能做到什么事还是看使用者的能力和脑洞。学习成本是有的,不过当用这个工具真正实现了自己的需求,成就感无与伦比。

祝大家在音乐世界玩得开心~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有