为方便收听,对免费的喜马拉雅音频,我选择将文件下载到本地,在 Android 手机中,借助 ES 文件浏览器进行批量重命名,只能简单的以书名 + 列表的方式排列,如
心理学与生活001.m4a
心理学与生活002.m4a
心理学与生活003.m4a
心理学与生活004.m4a
心理学与生活005.m4a
……
心理学与生活272.m4a
有没有什么办法将喜马拉雅完整的文件名赋予本地文件呢?
很幸运我找到了 rename_py 这个工具:
https://github.com/mengzonefire/rename_py
Python 脚本的使用方法见官方文档,在 macOS 中,如果报 locale 错误,可以尝试运行:
import locale
locale.getdefaultlocale()
如果能正常输出 zh-CN.UTF-8 ,可直接注释第64行,之后就能正常生成 list.txt 。
如果还有其它错误,根据出错提示解决。
下一步就获取喜马拉雅的文件标题,这里注入 jQuery,在控制台输出:
function needJS(d,f,g){g=g||function(){};if(d){return g(false)}var a=window.__needJS__||(window.__needJS__=[]);var b=a[f]||(a[f]={loaded:false,callbacks:[]});if(b.loaded){return g(false)}var c=b.callbacks;if(c.push(g)==1){var e=document.createElement("script");e.onload=e.onreadystatechange=function(){var h=e.readyState;if(h&&h!="loaded"&&h!="complete"){return}b.loaded=true;for(var j=0;j<c.length;j++){c[j](true)}};e.src=f;document.getElementsByTagName("head")[0].appendChild(e)}}needJS(window.jQuery,"//www1.pconline.com.cn/api/libs/jquery/jquery-1.7.2.min.js",function(){
jQuery(".title._nO").each(
function(){
console.log(jQuery(this).text());
}
);
});
分页拿到全部文本以后,借助正则表达式添加后缀名:m4a 。
运行:
python rename.py
即可完成重规范重命名。