喜马拉雅 批量重命名

各位移步Github

本文只是提供一个文件批量重命名的方式!
首先下载安卓模拟器
app里面下载音频后,打开文件浏览器。你会发现你在app中找不到默认的下载位置,这里给出app的默认下载位置,一般都是在:路径太长开头如下/storage/emulated/…
/storage/emulated/0/.........
按右上角那个三个点,有全选的选项,选择文件后,直接退回根目录,找到默认的共享文件夹:
在这里插入图片描述再按右上角三个点,在弹出的窗口中选择复制到此文件夹。
然后点击右侧栏目中的电脑图标弹出如下窗口:
在这里插入图片描述
在其他文件中选择打开电脑文件。
知道了文件的路径,打开x2m破解软件,按照他的说明操作,等待破解后,就可以享受了。当然你也可以选择先改名后破解,顺序无所谓,只是操作的时候,软件中输入的文件后缀名需要改一下。

然后发现现在的网上重命名软件已经过时,暂时还没找到最近的资源,因此自己用python写了一个,就是把一堆字母数字的文件转换为你在app里看到的标题。

改名程序 GitHub

第一步:改名

改名还需要一个db文件:按照之前音频文件的操作来。
附:db文件路径:
在这里插入图片描述
有很多人反应软件闪退,楼主亲测了以后发现,是因为他们改名的文件并不是付费的音频而是普通的音频。这两个其实是不一样的,但是为了方便大家,现在已经改了代码,支持两种文件的改名。不过我还没测试完全,不知道有没有bug,请大家用完告诉我。
在这里插入图片描述
打开压缩包,找到exe双击。
输入存放音频的目录名:
在这里插入图片描述
输入db,如果还没转换,后缀名可以不输入直接按回车
等待程序完成。如果有错误会有输出。
后文会附python源码
在这里插入图片描述
这张图片是普通音频,注意普通音频下下来都是这种没有后缀名的因此改名的话直接忽略后缀名按回车:
在这里插入图片描述
改名后:
在这里插入图片描述
这里如果发生错误会打印出错误信息,然后如果你文件夹中包含不同格式的文件,那必然会发生找不到文件的错误,这是正常的,请自己忽略。

付费音频下下来都是x2m格式的
也就是说每次运行重命名后缀名一样的文件,刚才重命名的是没有后缀名的文件,现在你要重命名后缀名为x2m的文件就需要再走一次上面的流程但是后缀名要填写x2m:
在这里插入图片描述

第二步:

移步Github

完!

CSDN太坑,各位移步github 最新版在这发布:
https://github.com/yinzixie/HimalayaRename/releases

这个是专门针对windows喜马拉雅app下载下来的文件
在这里插入图片描述

首先找到下载文件, 打开文件夹
在这里插入图片描述
可以看到这里有很多的文件,解释一下,一个专辑有三个文件,两个json文件加一个文件夹,文件夹内存放的就是音频文件
首先我们要找到我们希望更改的是哪一个专辑 打开 ****info.json 可以在里面找到专辑的名称,用txt打开即可:


可以看到2885924info.json里面显示的是这个专辑的信息。因此如果我们要改这个专辑就要认准2885924这个文件夹和2885924list.json这两个文件。
打开软件:
在这里插入图片描述
千万不要选错,另外不支持直接打路径和复制,请点击选择按钮进行文件和文件夹选择。
然后选择音频文件的类型:
在这里插入图片描述
点击start

然后如果想改回去原来的名字就选择revocation。

注意:因为喜马拉雅文件名是可以重复的原因,有些文件改名了之后就无法复原了。因为我这个软件自动后再后面添上id。。。。。。

appendix:
1.1版本:

# -*- 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.1")
print("注意事项:")
print("目录选择存放音频文件的那个目录")
print("必须输入ximalaya.db的绝对路径,也就是全路径")
print("文件后如果没有后缀名可以直接回车,如果已经解密或转换为其他格式文件,则输入转换后的文件类型")
print("此程序在2019年10月12日时仍然有效,若失效请联系xyz.hack666@gmail.com")
print()
#safe file name
illegal_Char = re.compile(r"[/\\:*?\"<>|]") 
#fetch encryption name from savepath
file_name_flag = re.compile("/([^/]+)")

#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("输入文件后缀名(无后缀名直接回车):")
            print("")
            file_extension = file_extension.replace("/","\\")
            file_extension = file_extension.replace("\"","")
            file_extension = file_extension.replace("'","")
            file_extension = file_extension.replace(".","")
                   
            for element in result:
                download_name = re.findall(file_name_flag,element[0])[-1]
                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.10.12")
print("------xyz")    
os.system("pause")
'''
sql = """select name from sqlite_master where type='table' order by name"""
cursor.execute(sql)
result = cursor.fetchall()
print(result)
print(type(result))
'''

'''
sql = """pragma table_info(track)"""
cursor.execute(sql)
result = cursor.fetchall()
print(result)
print(type(result))
'''
'''
sql = """select * from track"""
cursor.execute(sql)
result = cursor.fetchall()
print(result)
print(type(result))
'''


    
    
    
    
    

1.0版本

# -*- 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日时仍然有效,若失效请联系xyz.hack666@gmail.com")
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")  
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值