Unlock Music 付费音乐下载格式解锁

疫情概要

1月23日0—24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例80例,其中境外输入病例15例(广东5例,上海3例,山西2例,天津1例,辽宁1例,江苏1例,陕西1例,甘肃1例),本土病例65例(黑龙江29例,河北19例,吉林12例,上海3例,北京2例);无新增死亡病例;新增疑似病例1例,为境外输入病例(在上海)。

春节将至,疫情反复,大家注意日常防疫,减少不必要外出,外出佩戴口罩。预祝大家过个愉快的春节!

前言

如今因为音乐版权的问题,各大音乐播放平台之间竞争激烈,各家都推出了自己的音乐加密方式,导致付费音乐下载后不能用其他的音乐播放器播放,并且过了会员期后下载的文件在自家的播放器上也是不能播放的(需单曲购买后才支持解锁,支持其他播放器播放)。

车上U盘内的歌曲呢已经快1年没有更新了,趁着现在有QQ音乐会员打算更新一波曲目(感谢京东218会员赠送的1年QQ音乐绿钻豪华会员,鄙人裤腰带都快勒断了是不可能专门买的啦)。结果通过客户端下载下来的文件有部分是被加密过的,仅有少数歌曲是不加密的。这我明显是不能答应的啊。

经过不懈的努力后,终于找到一个开源的解码神奇啊。

开源项目地址:https://github.com/ix64/unlock-music

本篇主要讲述亮点:

  • Unlock Music的使用
  • 站点部署流程整理(太久没弄了,忘了,借这次机会操作一遍)

部署后的地址:

演示地址:https://unlock.nhtzj.com

设备

  • Mac pro
  • 阿里云服务器(Centos7+Nginx)

Mac版QQ音乐下载路径

  • 加密歌曲是放在:

/Users/当前登录用户名/Library/Containers/com.tencent.QQMusicMac/Data/Library/Application\ Support/QQMusicMac/iQmc/

也可通过 下载歌曲 -> 已下载 -> 在下载的歌曲上右键-> 点击 查看本地文件 直接跳转到该目录下。

  • 未加密文件是放在:

/Users/当前登录用户名/Music/QQ音乐

也可通过定位到加密文件的方式直接打开这个目录。

Unlock Music 音乐解锁

本小节直接从开源项目内的说明文档内抄录而来

若Github下载慢,可点击下方链接下载,从Github下载而来,未做修改。

版本:1.7.2

legacy版本


modern版本:

源码unlock-music-1.7.2.zip

legacy版本modern版本为已构建的版本,构建版本和源码的使用可以查看章节 使用方法

功能介绍

  • 在浏览器中解锁加密的音乐文件。 Unlock encrypted music file in the browser.
  • unlock-music项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循License
  • Unlock Music的CLI版本正在开发中。
  • 我们新建了Telegram群组,欢迎加入!https://t.me/unlock_music_chat
  • CLI版本 Alpha 大批量转换建议使用CLI版本
  • 相关的其他项目
  • Release and GitHub Pages

特性

支持的格式

  • QQ音乐 (.qmc0/.qmc2/.qmc3/.qmcflac/.qmcogg/.tkm) 。
    其中.qmc0:标准;.qmc3:HQ高品质;.qmcflac:SQ高品质

    • 写入封面图片
  • Moo音乐格式 (.bkcmp3/.bkcflac)

  • QQ音乐Tm格式 (.tm0/.tm2/.tm3/.tm6)

  • QQ音乐新格式 (实验性支持)

    • .mflac
  • .mgg

  • 网易云音乐格式 (.ncm)

    • 补全ncm的ID3/FlacMeta信息
  • 虾米音乐格式 (.xm) (测试阶段)

  • 酷我音乐格式 (.kwm) (测试阶段)

  • 酷狗音乐格式 (.kgm) (CLI版本)

其他特性

  • 在浏览器中解锁
  • 拖放文件
  • 在线播放
  • 批量解锁
  • 渐进式Web应用
  • 多线程

使用方法

使用已构建版本

  • GitHub Release下载已构建的版本

    • 本地使用请下载legacy版本modern版本只能通过http/https协议访问)
  • 解压缩后即可部署或本地使用(请勿直接运行源代码

自行构建

  • 环境要求
    • nodejs
    • npm
  1. 获取项目源代码后执行 npm install 安装相关依赖
  2. 执行 npm run build 即可进行构建,构建输出为 dist 目录
  • npm run serve 可用于开发

部署新站点

小编这边将解码的站点配置为二级域名:unlock.nhtzj.com

设备

  • Mac pro
  • 阿里云服务器(Centos7+Nginx)

添加二级域名解析

阿里云域名解析网站添加二级解析域名:unlock.nhtzj.com

add-second-analysis

添加站点文件

  1. 下载modern版本

  2. 解压

  3. 将文件夹名称modern 改为 unlock,并对内部文件进行了微调

  4. unlock文件夹上传到服务器根目录/var/www下 ,上传使用scp命令:

    1
    scp -r 本地文件夹路径 服务器登录用户名@服务器IP地址:/var/www

    其中-r用于上传/下载文件夹。

    如果本地路径和服务器路径交换下,就是从服务器下载

    1
    scp -r 服务器登录用户名@服务器IP地址:/var/www/unlock 本地文件夹路径

授予权限

现在我们已经添加的文件,但这些目录结构都为 root 用户所有。如果希望服务器上的普通用户也能够修改 web 目录下的文件,我们可以使用 chown 命令转移目录的所有者:

1
sudo chown –R $USER:$USER /var/www/

当你提交上述 chown 命令时,$USER 变量将会取值为当前登录服务器的用户。这样,我们的普通用户就取得了 www 子目录的所有权。

此外,我们还需要对这里的目录权限做一点修改,确保对一般的 web 目录及其内部的子目录和文件的读取都是被允许的,这样,网页才能正常地为访问者提供服务:

1
sudo chmod –R 755 /var/www

现在你的服务器应该已经取得了为向 web 站点访问者提供内容所需的权限,并且服务器上的用户现在应该能够在恰当的文件夹下创建内容

添加新站点配置文件

nginx的配置路径是在:/etc/nginx/

进入后,目录如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# cd /etc/nginx/
# ll
total 68
drwxr-xr-x 2 root root 4096 Jan 23 20:10 conf.d
drwxr-xr-x 2 root root 4096 Mar 6 2018 default.d
-rw-r--r-- 1 root root 1077 Mar 6 2018 fastcgi.conf
-rw-r--r-- 1 root root 1077 Mar 6 2018 fastcgi.conf.default
-rw-r--r-- 1 root root 1007 Mar 6 2018 fastcgi_params
-rw-r--r-- 1 root root 1007 Mar 6 2018 fastcgi_params.default
-rw-r--r-- 1 root root 2837 Mar 6 2018 koi-utf
-rw-r--r-- 1 root root 2223 Mar 6 2018 koi-win
-rw-r--r-- 1 root root 3957 Mar 6 2018 mime.types
-rw-r--r-- 1 root root 3957 Mar 6 2018 mime.types.default
-rw-r--r-- 1 root root 2588 Oct 17 2018 nginx.conf
-rw-r--r-- 1 root root 2656 Mar 6 2018 nginx.conf.default
-rw-r--r-- 1 root root 636 Mar 6 2018 scgi_params
-rw-r--r-- 1 root root 636 Mar 6 2018 scgi_params.default
-rw-r--r-- 1 root root 664 Mar 6 2018 uwsgi_params
-rw-r--r-- 1 root root 664 Mar 6 2018 uwsgi_params.default
-rw-r--r-- 1 root root 3610 Mar 6 2018 win-utf

其中目录conf.d就是添加新站点配置的地方。

nginx.conf为nginx的总配置文件,文件打开后可以看到如下,将conf.d目录下所有conf格式的文件都加载进来

1
include /etc/nginx/conf.d/*.conf;

所以在conf.d内创建文件 unlock.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
#listen 80;
root /var/www/unlock; # change to your dir
server_name unlock.nhtzj.com; # change to your service name(domain)
index index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/unlock.nhtzj.com_error.log;

error_page 404 /404.html;
location = /40x.html {
}
}

重启nginx

1
systemctl restart nginx

现在可以在浏览器输入自己的域名查看效果了

http://unlock.nhtzj.com

添加ssl证书

给新加的二级域名添加ssl证书。

由于小编之前已经创建过证书了所以这里就是给证书添加新域名的操作

由于新增时需要将证书内原有的域名信息也要加上,所以

  1. 查询原有证书信息

    1
    certbot certificates
  2. 将查询到的Domains信息取出,并用逗号分隔

    1
    sudo certbot --expand -d blog.nhtzj.com,www.nhtzj.com,unlock.nhtzj.com

具体示例可查看文章 Centos7使用certbot获取ssl证书#常用命令

现在可以在浏览器输入自己的域名查看效果了

https://unlock.nhtzj.com

参考

CentOS 7 Apache 多端口部署 Web Apps 指南

unlock-music

坚持原创技术分享,您的支持是对我最大的鼓励!