喜马拉雅-付费音乐下载后的加密音频文件如何解密

时间:2024-04-13 19:57:43

之前一直用的电脑下载喜马拉雅文件,下载后不管是付费的还是普通的音乐都是m4a格式,然后对于付费音乐的加密音频就束手无策,前几日才知道原来手机上下载的音频是x2m格式的,而且网上也有很多的**软件,因此特此做一个记号。通过x2m的解密软件就可以直接在任何播放器上,MP3
上听了。
首先下载安卓模拟器,推荐夜神。
app里面下载付费音频后,打开文件浏览器。你会发现你在app中找不到默认的下载位置,这里给出app的默认下载位置,一般都是在:路径太长开头如下/storage/emulated/…
喜马拉雅-付费音乐下载后的加密音频文件如何解密
按右上角那个三个点,有全选的选项,选择文件后,直接退回根目录,找到默认的共享文件夹:
喜马拉雅-付费音乐下载后的加密音频文件如何解密再按右上角三个点,在弹出的窗口中选择复制到此文件夹。
然后点击右侧栏目中的电脑图标弹出如下窗口:
喜马拉雅-付费音乐下载后的加密音频文件如何解密
在其他文件中选择打开电脑文件。
知道了文件的路径,打开x2m**软件,按照他的说明操作,等待**后,就可以享受了。
附:db文件路径:
喜马拉雅-付费音乐下载后的加密音频文件如何解密
然后发现现在的网上重命名软件已经过时,暂时还没找到最近的资源,因此自己用python写了一个,就是把一堆字母数字的文件转换为你在app里看到的标题。当然你可以先解密x2m文件在重命名,顺序无所谓,甚至不改名也灭关系。
改名程序 5个c币 后文附源码:https://download.****.net/download/qq_37705552/11106615

第一步:改名

喜马拉雅-付费音乐下载后的加密音频文件如何解密
打开压缩包,找到exe双击。

喜马拉雅-付费音乐下载后的加密音频文件如何解密
输入存放音频的目录名
喜马拉雅-付费音乐下载后的加密音频文件如何解密
输入db,如果还没转换,后缀名可以不输入直接按回车
等待程序完成。如果有错误会有输出
后文会附python源码
喜马拉雅-付费音乐下载后的加密音频文件如何解密
重命名完成

第二步:**x2m

x2m**软件 ps:这个软件是网上资源
https://pan.baidu.com/s/1JXG3HTbMbN8Lt3bbvuZLFg
提取码:w3ki

喜马拉雅-付费音乐下载后的加密音频文件如何解密
选择x2mdec按钮会弹出窗口选择文件夹
完成后如图:
喜马拉雅-付费音乐下载后的加密音频文件如何解密
完!

有空会发布自己初学python写的电脑版的重命名喜马拉雅文件

appendix:

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 09:46:25 2019

@author: xyz
"""

#table track downloadedsavefilepath   tracktitle 
# coding:utf-8
import re
import os
import sqlite3

#Description

print("喜马拉雅重命名手机版1.0")
print("注意事项:")
print("目录选择存放音频文件的那个目录")
print("必须输入ximalaya.db的绝对路径,也就是全路径")
print("文件后缀名如果你还没有将写x2m解密则可以直接回车,如果已经解密或转换为其他格式文件,则输入转换后的文件类型")
print("此程序在2019年4月11日时仍然有效,若失效请联系[email protected]")
print()
#safe file name
illegal_Char = re.compile(r"[/\\:*?\"<>|]") 
#fetch encryption name from savepath
file_name_flag = re.compile("/([^/]+).x2m")

#get operational dir
dirname = input("请输入音频所在的目录名:")
print("")
dirname = dirname.replace("/","\\")
dirname = dirname.replace("\"","")
dirname = dirname.replace("'","")

try:
    os.chdir(dirname)
except OSError as err:
    print("系统错误: {0}".format(err))
    print("")
else:    

    #get ximalaya.db path
    ximalayadb = input("输入ximalaya.db含路径全名:")
    print("")
    ximalayadb = ximalayadb.replace("/","\\")
    ximalayadb = ximalayadb.replace("\"","")
    ximalayadb = ximalayadb.replace("'","")
    
    #connect to db
    try:
        conn = sqlite3.connect(ximalayadb)
        cursor = conn.cursor()
    except Exception as err:
        print(err)
    else:
        
        #select original encryption name and original name
        try:
            sql = """select downloadedsavefilepath,tracktitle from track"""
            cursor.execute(sql)
            result = cursor.fetchall()
        except Exception as err:
            print(err)
            
        #process(fetch name and rename file)
        else:
            
            file_extension = input("输入文件后缀名(默认为x2m):")
            print("")
            file_extension = file_extension.replace("/","\\")
            file_extension = file_extension.replace("\"","")
            file_extension = file_extension.replace("'","")
                   
            if (file_extension == ""):
                 file_extension = "x2m"
                
            for element in result:
                download_name = re.findall(file_name_flag,element[0])[0] + "." + file_extension
                title = re.sub(illegal_Char,"",element[1])
                newname = title + "." + file_extension
                if(os.path.isfile(newname)):
                    newname = title + element[0] + "." + file_extension
                
                
                try:
                    os.rename(download_name, newname)
                except Exception as err:
                    print("无法重命名文件: ",download_name, " 到: ",newname, " 原因: ",err)
                    print("")
                    
                    
print("2019.4.11")
print("------xyz")