喜马拉雅FM下载的音频转换为正常文件的JAVA实现

可能很多朋友都会发现 ,喜马拉雅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";

然后运行,就可以将文件的文件名称全部修改为正确的文件名称。

运行前的文件如下:

运行后的文件名称如下:

完美解决,如果你有问题,请下方评论,如果你觉得我能帮到您,还请您异步原网站,并点下网站里的广告,免费赞助我下

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值