重命名从喜马拉雅下载的音频文件

Posted gordonyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重命名从喜马拉雅下载的音频文件相关的知识,希望对你有一定的参考价值。

  Win10的应用商店中,可以安装喜马拉雅,并下载感兴趣的音频文件。下载的音频如下图所示, 有两个json文件(图1),其中一个json文件(2677885list.json)包含了所下载音频的详细信息,包括id和title(文件真实名称);音频文件是一串纯数字的id作为名称,没有显示音频的真实名称(图2)。可以利用这个id找到音频文件的真实名称,并给音频文件重命名。对音频文件重命名后的效果(图3)。

技术分享图片技术分享图片技术分享图片

 

  本人用WinForm开发了一个应用,界面主要三个部分:1. 选择音频目录;2. 选择json文件;3. 开始。

技术分享图片

1. 选择音频目录:

技术分享图片
1         private void bt_select_file_Click(object sender, EventArgs e)
2         {
3             FolderBrowserDialog path = new FolderBrowserDialog();
4             path.ShowDialog();
5             tb_file.Text = path.SelectedPath;
6         }
View Code

2. 选择json文件:

技术分享图片
1         private void bt_select_json_Click(object sender, EventArgs e)
2         {
3             OpenFileDialog file = new OpenFileDialog();
4             file.ShowDialog();
5             tb_json.Text = file.FileName;
6         }
View Code

3. 开始:

(1)定义FileInfo实体类

技术分享图片
1     public class FileInfo
2     {
3         public string id { get; set;}
4         public string title { get; set; }
5     }
View Code

(2)定义FileInfo的泛型类对象,读取json文件,转换成string类型,再反序列化为类对象

技术分享图片
 1                 // 定义FileInfo的泛型类对象
 2                 List<FileInfo> fileInfo = new List<FileInfo>();
 3 
 4                 // 读取json文件,转换成string类型,再反序列化为类对象
 5                 using (StreamReader file = File.OpenText(tb_json.Text))
 6                 {
 7                     using (JsonTextReader reader = new JsonTextReader(file))
 8                     {
 9                         JToken token = JToken.ReadFrom(reader);
10                         string json = token.ToString();
11                         fileInfo = JsonConvert.DeserializeObject<List<FileInfo>>(json);
12                     }
13                 }
View Code

(3)获取目录中的音频文件

技术分享图片
1                 // 获取目录中的音频文件
2                 DirectoryInfo dircetoryInfo = new DirectoryInfo(tb_file.Text);
3                 System.IO.FileInfo[] files = dircetoryInfo.GetFiles();
View Code

(4)根据json中的id信息找到对应的文件,然后用title和.mp3组成新的文件名,最后用MoveTo方法进行重命名

技术分享图片
 1  // 根据json中的id信息找到对应的文件,然后用title和.mp3组成新的文件名,最后用MoveTo方法进行重命名
 2                 foreach (var file in files)
 3                 {
 4                     string[] sArray = file.Name.Split(.); //获取文件不带扩展名的文件名
 5                     foreach (var item in fileInfo)
 6                     {
 7                         if (sArray[0] == item.id)
 8                         {
 9                             string destPath = Path.Combine(tb_file.Text, item.title + ".mp3"); //组合成新的文件名称和原始路径
10                             file.MoveTo(destPath); // 文件重命名
11                         }
12                     }
13                 }
View Code

以上是关于重命名从喜马拉雅下载的音频文件的主要内容,如果未能解决你的问题,请参考以下文章

企鹅FM音频下载器V1.0 企鹅FM下载器

JS + shell 批量下载 喜马拉雅FM 的音频

使用ffmpeg从视频文件中提取音频文件视频抽帧和切割视频

如何用Python爬取喜马拉雅全网音频文件

Python中使用requests和parsel爬取喜马拉雅电台音频

使用 AspNet 从 Azure Blob 存储下载和重命名文件