可能很多朋友都会发现 ,喜马拉雅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 * <li>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";
然后运行,就可以将文件的文件名称全部修改为正确的文件名称。
运行前的文件如下:
运行后的文件名称如下:
完美解决,如果你有问题,请下方评论,如果你觉得我能帮到您,还请您异步原网站,并点下网站里的广告,免费赞助我下