众所周知,现在很多音频网站以下载客户端并付费作为下载资源的先决条件(某些提供伴奏的网站甚至禁止下载)。本文讲述的奇技淫巧用于“强行”下载这些资源。

请注意,必须在 PC 端操作系统上才能完成操作。Firefox、Chrome、Opera 和 Edge(新版)等浏览器的开发者工具极其相似,均可使用本文介绍的方法。

注意:禁止转载本文章。

声明:本文介绍的方法仅应当被用于非商业的教育或测试目的。若阅读本文章导致不良后果,读者需要自担责任。

本方法理论上不可用于付费收听的内容,只能解决付费下载与会员过期后自动删除(即“本地文件加密”)的问题,但不排除遇到“前端开发一天从入门到精通”的网站的可能性。

经验有效性复核:2020年12月03日 (yezhiyi9670)

理论基础

这些理论基础能够证明技术手段的存在。

音频或视频文件的在线播放与下载在技术上等同

显然,要播放音频或视频,网站必须将相关内容发送给用户,而下载的原理与其完全相同。允许在线播放而禁止下载的行为,本质上是利用用户对技术的无知以对其加以限制。

没有任何法律规定不得擅自改装浏览器,因此,被改装的浏览器完全可以在在线播放的同时直接提供下载选项。

音乐网站上不值得使用分片加载

分片加载等技巧用在视频网站上时,能大大增加技术手段下载的难度,并且改进性能。

视频网站上的分片一般 2-8 分钟为一片(此大小不会影响视频播放效果),这时能获得最好的性能。然而,歌曲和大多数音乐的大小常常不及一部电影的 1%(此处以 .flac 无损格式为依据),使用分片加载会增加维护难度,增大网络流量,并完美地损失性能。

正因如此,主流音乐网站仍使用传统的方式加载音频。

音乐网站不值得用奇怪的技巧阻止下载

音乐网站用奇怪的技巧阻止下载,通常开销(指性能和程序复杂度)极大而效果不明显。而即使音乐网站真的成功地阻止了技术手段下载,通过录屏的方式(仅录制系统声音)获取音频的难度仍然奇低无比。

录屏对音频质量的损伤可以忽略(前提是系统音量值足够大,但是可以静音),而傻子都知道,看一个四分钟的广告多享受四分钟的音乐来换取自己喜欢的歌是值得的。

初级方法

有了上面的思路后,不难发现,只要能使用一种合适的方式分析音频网站的程序,就可以绕过形同虚设的限制,获取通用的、未经加密的音频文件。

所谓“初级方法”,就是利用已经制作好的网页工具(如浏览器扩展和油猴脚本)或浏览器内置工具对网页进行分析并获取文件的方法。

使用预先制作的工具

通用的资源下载扩展程序

通用的资源下载扩展可以自动分析页面上的音频、视频等资源,并给出下载链接。Bulk Media Downloader (请自备梯子) 就是典型的资源下载扩展。

针对性工具

针对性工具是为特定的网站设计的。这些工具通常更加强大,但使用这些工具时,收到律师函的可能性也更大。

使用浏览器内置工具

然而,上述只是特例。我们需要更加优秀的方法来解决大部分网站的下载问题。

(当然,通用方法的演示也需要使用一个特例。这里用酷我音乐和QQ音乐演示)

演示一(别跳过)

举例:十字诀 - 阿悄(酷我音乐)

1 打开播放页面 -> http://www.kuwo.cn/play_detail/6877870(非https链接,请自行复制打开),尝试播放。保证音乐是你想要的(虽然实际上技术手段下载不用花费很久)。

2 我们尝试用网页上的下载键。我们发现不出我们所料,大多数中国的音乐网站下载都要求客户端。

酷我音乐要求使用客户端下载

注:这里提到了一个 [已安装酷我音乐] 的按钮。这里利用的是自定义网络协议。将会在进阶的技术手段文章中讲解。当然会不会有进阶文章还不知道。

3音频最终能播放的页面中按下键盘上的F12(该操作针对Chrome以及大多数主流浏览器)。如果F12不管用,那么可以在菜单中找到“查看器”或“开发者工具”

查看器

4 在开发者工具中切换到Network(网络,有的浏览器已经为开发者工具做了中文版)栏。刷新页面。

5 此时应该可以看到一些开发者工具窗口中涌现的网络访问记录。每一次网页从网络上加载资源的操作都会被记载在这里(同时,网页本身的加载也记在了其中。图片见第七步)

6 再次操作网页,使音乐播放起来(但是不要关闭开发者工具)。

7 点击开发者工具表格中的Type(类型)列,将内容以类型排序。以方便查找。

进行排序

8 找到类型为media的项目。(如果找不到,请宣告失败。该网站不适合用初阶技术手段下载)右键其中一个,点击Open in new tab(在新标签页中打开)

新标签页打开

9 打开后,有可能浏览器会要求直接下载。此时,要确认文件名后缀是否是音频的后缀(.mp3 .aac .ogg .flac .wav .m4a ...。遇到生僻后缀建议网络搜索确定其含义),如果符合要求则确认下载。如果浏览器给出了预览功能,请试听。如果符合要求,按Ctrl+S进行保存。如果不符合要求,那么请回到开发者工具,尝试其他类型为media的文件。

Chrome提供的预览功能
准备下载

10 下载后,检查下载的文件是否是想要的。

演示二

QQ音乐的演示主要用于解决一个误区,就是要在哪个页面使用F12

示例: 蜀绣 - 苏曦汐

1 打开歌曲页面,尝试播放 ->https://y.qq.com/n/yqq/song/004AQQWC4RBEHL.html

(实际上QQ音乐并不是在歌曲描述页上播放音乐的,这就涉及到两个页面。用来播放的页面是https://y.qq.com/portal/player.html)

QQ 音乐上的播放器

2 下载按钮就不尝试点了,因为可以猜到结果。

3 划重点!这里有两个网页,要在哪个上进行F12操作呢?(当然是https://y.qq.com/portal/player.html,因为这才是音频最终能够播放的页面)

4 自觉切换到Network。

5 刷新页面。此时播放列表中刚才的歌曲还在(如果没有了,那么请再点击https://y.qq.com/n/yqq/song/004AQQWC4RBEHL.html上的“播放”按钮,此时,能够切换到播放器页面,不造成刷新)

检索后的播放页面

6 使要下载的音乐播放起来。

7 排序

8 找出media。使用Open in new tab的方式打开。可以注意到,这里出现较多的项目。解决方法,就是,只尝试同名文件中的最后一个,从最后一组同名文件开始尝试(原理此处不赘述)。

大量的 Media 资源

9 准备保存

新建下载任务

10 检验文件是否正确。第8步列表中第一个文件名(C400003mAan...)是不能播放的。尝试第二个(C40003iMUS...),发现是正确的。至此,下载完成。

目前,大多数主流视频网站都已经分片加载,防止了用这个技术下载内容(当然,对于偏远的视频网站,用音频网站的方法可能是有效的)。但是,根据理论基础,一定会有办法解决下载问题。这个办法将在进阶内容中讲解。


undefined