文章思维导图

最近一段时间迷上了梁博的音乐,不过想听的时候却遇到了很多麻烦:

1. 身在海外,买不到实体专辑。

梁博目前为止发行了两张专辑,但是因为专辑发行量少,之前2014年发行的初版同名专辑据说已经被炒到1000元以上的价格。2015年的第二张专辑《迷藏》经过2019年加印再版,现在已经可以很容易从网上买到。不过这也仅限于国内的网络销售平台,在日本的话,只有乐天市场上有一家店铺可以买到,而且价格要高出国内5倍左右,考虑了一下还是回国的时候再买比较划算。

2. 数字播放的话国内的音乐APP没办法使用,国外的app歌曲又不全

身处日本,很多国内音乐APP都不对海外地区开放,平常使用最多的就是apple music了。但是apple music中只收录了梁博的第二张专辑,以及了一些零散的单行曲,很多极具舞台表现力的作品都不能直接获取。

3. 梁博的很多好听的音乐都是在综艺节目中演出的,而并非收录在音乐专辑中

退一步讲,就算买到了专辑,但是由于梁博的很多有表现力的音乐都是在综艺节目中演出的,比如之前大热的《我是创作人》中的《表态》,《黑夜中》,《歌手》中的《日落大道》,《男孩》,所以想要听梁博的音乐不仅要关注他的音乐专辑,还要还要搜集他在综艺节目中的live演出曲目。

好在目前这些演出大多可以在B站和YouTube搜到,但是因为这两个网站都是主打视频分享的原因,对于纯音频的离线缓存和播放体验不是很好。

B站的话APP太臃肿了,放在后台播放的话手机耗电量很大,YouTube的话经常会在播放过程中插入广告,而且无法后台播放。

虽然家里购置了一套雅马哈的音响,但是AirPods Pro的出现完全改变了我之前的视听体验,果然对于随时随地无线连接,无缝切换的播放体验来说,适当牺牲一下音质也是可以接受的。

因此,解决实体专辑无法随身播放以及数字音乐播放时各种音乐app版权不兼容的问题,最好的方案就是利用本地播放器进行离线播放。

当然,除了上述优点之外, 本地播放还有一个巨大的好处就是可以摆脱网络速度的限制,在乘电车或者开高速的时候都可以获得和平时一样无卡顿和加载的音乐播放体验。

那么在这个在线音乐已经成为主流的时代,要怎么简便而又优雅的实现音乐的本地播放呢?

本地播放器的选择

IINAfoobar2000

之所以选择这两款播放器,自己主要是基于以下几方面进行考虑:

    简洁,我个人非常讨厌大而全的应用,主张每个程序专精自己的一部分就好。具有设计感,首先一眼看上去觉得很舒服,不会有很多花花绿绿的东西来干扰眼球。开源优先,支持正版,正版软件中买断制优先。原生软件优先,如果有满足功能的系统自带的原生软件的存在,轻易不会替换为第三方软件。

比较下来看,这两款播放器都属于开源软件,没有收费等会员制度或者强制注册账号并随时要求在线登录的困扰。

其次,这两款软件设计都很简约,只是专注于流媒体播放这一个领域。

在播放文件的格式方面,这两款播放器都提供了强大的格式支持,从常见的mp3,wav,到苹果的m4a,甚至无损音乐格式flac等都可以无缝播放,不再会出现满心欢喜下载好音乐后却无法播放的尴尬。

VLC播放器

构建自己专属的本地播放曲库

解决了本地播放器的问题,接下来就是怎么下载自己想听的音乐了。我最终采取的方案是利用youtube-dl从YouTube上爬取音乐视频的音频文件,然后在本地管理自己的播放列表,并通过AirDrop将本地的播放列表导入手机中进行畅听。

1. 什么是youtube-dl

在推荐之前,首先解释一下什么是youtube-dl,dl是英文download的缩写,因此顾名思义这是一个用来下载YouTube上视频的小工具,具体介绍可以参考官方网站和项目的GitHub主页。

2. 为什么选择youtube-dl

首先虽然YouTube在大家的主流认识里是作为一个视频网站出现的,但是目前而言,由于版权的限制,不用付费会员而听到自己想听的音乐只能通过观看歌手的官方MV这种曲线救国的方式来实现。

而YouTube作为海外用户基数最大的视频播放平台,你想听的每个歌手的音乐几乎都可以在上面找到,再加上用户自己上传的内容,这就意味着YouTube几乎拥有着一个比所有音乐播放APP都要完备的海量音乐曲库。

如果有一种方法可以爬取YouTube上视频的音乐,那么制约本地播放最大的曲库来源问题便迎刃而解了,这也是我为什么选择youtube-dl的原因。

you-getBilibili Evolvedffmpeg

由于这种方法多一步手动提取音频文件的步骤,日常使用下来没有youtube-dl简单快捷,使用频率不是很高,仅限于某些只有B站才能找到的资源使用。

3. 安装youtube-dl

如果电脑中安装了python的话,直接通过pip工具就可以轻松安装youtube-dl。没有安装python的话,请移步菜鸟教程的python环境搭建。

pip3 install youtube-dl

4.  使用youtube-dl下载音乐

首先我们需要在YouTube上找到我们想要听的音乐,在这里以梁博的在《我是唱作人》中的《表态》为例。

在搜索结果中找到自己想要听的内容,进入到播放页面后,复制播放页面的地址。然后把下面与语句的`url`替换成自己的网站链接,在命令行中输入,解析出视频网址中的音频文件信息。

youtube-dl -F "url"

youtube-dl -F "https://www.youtube.com/watch?v=H_w5ycR_uBc"

图片中黄色部分标记出来的就是音频文件,这里选择m4a格式的文件进行下载,之后找到m4a文件对应的格式码为140,然后利用下面的语句把想要的文件下载到自己指定的本地目录当中,注意把下面路径中的`user name`替换成自己的电脑用户名称。

youtube-dl -o “本地目录” -f 140 "url"

youtube-dl -o '/Users/user name/Documents/Library/Music Local Library/Youtube-dl/%(title)s.%(ext)s' -f 140 "https://www.youtube.com/watch?v=H_w5ycR_uBc"

上面语句中`-o`之后是自己制定的本地地址,命名方式和YouTube播放界面的名字保持一致,140代表m4a文件的格式码。上面的语句成功执行之后,会出现以下输出画面:

到此为止,一首音乐就下载成功了。把自己想要的音乐下载好后,通过AirDrop导入手机就可以无限制的愉快畅听了。

在这里只是演示了一下youtube-dl当中最常用的两个语句,其他一些复杂的功能比如批量下载视频列表中的音乐,提取视频中的字幕,对视频质量和音频进行定制下载等等大家可以参考官方文档。

除了音乐之外?

最后插一个小彩蛋,这篇文章主要介绍的是自己在如何搭建本地音乐库方面所做的一些探索,但是掌握了这个方法之后,真的就只能用来听音乐了吗?

其实它的应用场合可远远不止于此,利用youtube-dl,你可以爬取YouTube上自己想听的所有东西,包括有声电子书,德云社相声,英语口语听力资料等等。只要网站上存在,都可以下载之后作为自己的听力资源。