可能很多朋友都会发现 ,喜马拉雅FM下载的VIP音频,一旦VIP过期后,将不能再收听,那么很多人都会想,如何才能在将在会员期下载的VIP音频离线备份,并且能随时收听。但是当大家伙找到下载的文件后,发现文件名和文件格式都是一堆乱码,转移出来后根本不知道这到底是时哪个文件,网上有很多人提供了Python程序来实现将这些.文件解密的方式,但是很多人并不一定都会Python,本文就讲述如何使用Java实现转换喜马拉雅下载的音频文件。
一、实现 基础
1、首先有一台可以上网的电脑
2、此电脑安装了Java运行环境和eclipse/myeclipse/intelij任何其一开发软件
3、此电脑为windows电脑
4、如果想下载并转换VIP音频,需要有会员
二、软件实现
1、需要在电脑上下载喜马拉雅FM客户端
由于直接在喜马拉雅官网下载的PC客户端无法现在,我们采用曲线救国的方式来实现,使用windows电脑在微软应用商店中搜索“喜马拉雅”,搜索结果如下
点击安装此应用,安装成功后的效果就是如上,点击“启动”,效果如下:
2、登录
使用你自己的账号登录
3、修改下载文件 路径:
4、选择你要下载的音频,并点击下载,下载后的文件列表效果如下:
4、打开你刚刚设置的下载目录,文件结构如下:
上面目录中的20207764就是我下载的文件的文件夹(注意,每个音频集合的这个文件夹名称不一样)
5、将下载的程序拷贝至开发工具并运行(需要引入Org.json的Jar)
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
import org.json.JSONArray;
import org.json.JSONObject;
/**
* @Project: 便民(BeBianMin-BaJson)系统
* @Description: 中文类名。
* @Version 1.0.0
* @Author
*
2020-01-23 1028743139@qq.com Create 1.0
* @Copyright ©2017-2020 BeBianMin(www.bajson.com),版权所有。
*/
public class XiMaLaYaCon
{
public static void main(String[] args)
{
String sourceDir = "E:\\音乐\\大唐\\20207764";
String jsonDir = sourceDir + "list.json";
System.out.println("————开始读取" + jsonDir + "文件————");
try {
// File jsonFile = new File(fileName);
FileReader fileReader = new FileReader(jsonDir);
Reader reader = new InputStreamReader(new FileInputStream(jsonDir), "utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
JSONArray jsonArray = new JSONArray(sb.toString());
System.out.println("————读取" + jsonDir + "文件结束!————");
System.out.println("读取到文件内容为:" + jsonArray.toString());
if (jsonArray.length() >= 0) {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String trackId = String.valueOf(jsonObject.getInt("trackId"));
String title = jsonObject.getString("title");
System.out.println("读取到的文件为:" + trackId + ",文件名称为:" + title);
String fileDir = sourceDir + "\\" + trackId + ".m4a";
String fileTar = sourceDir + "\\" + title + ".mp3";
File fileSource = new File(fileDir);
File fileTarget = new File(fileTar);
fileSource.renameTo(fileTarget);
}
System.out.println("-------------转换完毕-----------");
}
else {
System.out.println("--------该目录下无要转换的文件--------");
}
}
catch (Exception e) {
System.out.println("————读取" + jsonDir + "文件出现异常,读取失败!————");
e.printStackTrace();
return;
}
}
}
将4中的文件夹目录拷贝并替换上面程序中的值
String sourceDir = "E:\\音乐\\大唐\\20207764";
然后运行,就可以将文件的文件名称全部修改为正确的文件名称。
运行前的文件如下:
运行后的文件名称如下:
完美解决,如果你有问题,请下方评论,如果你觉得我能帮到您,还请您异步原网站,并点下网站里的广告,免费赞助我下