使用 gPodder 下载播客后如何自定义重命名?

使用 gPodder 下载播客后如何自定义重命名?

我正在使用 Arch Linux。

要下载播客,我使用 gPodder 3。

为了收听我的播客,我在 iPod Classic 上使用 Rockbox。

问题是,我的 iPod 上的播客无法很好地排序:所有内容都会按字母顺序排序。为了克服这个问题,我想在下载后立即将播客名称更改为:

YYYYMMDD_Podcast_Name.mp4

例如:

20130828_Easy_Linux_Remote_Desktop_LAS_s28e03.mp4

这样,即使按字母顺序排序,播客也会按正确的顺序排列。

我怎样才能完成这件事?我知道有一个名为 的插件rename_downlad.py,它将把播客名称转换为<episode_title>.<ext>,但这并不是我想要的。我尝试在以下位置修改此扩展/usr/share/gpodder/extensions/rename_download.py

第 45 行:

new_filename = str(datetime.datetime.now().strftime("%Y%b%d_")) + os.path.join(dirname, new_basename)

但由于某种原因,这不起作用。

我怎样才能完成这件事?请注意,在我的示例中,添加到标题中的唯一内容是当前日期。如果这可以是该集的发布日期,那就太好了,但我已经很高兴只添加当前日期了。

答案1

如果您只是想重命名文件以使其包含 YYMMDD_Podcast_Name.mp4,您可以使用以下 Bash 脚本来执行此操作:

$ for i in *.mp4; do
    dateString=$(date +"%Y%m%d" --date @$(stat -c %Z "$i"))
    mv "$i" "${dateString}_$i"
done

例子

假设我有以下文件。

$ ls | paste - -
file1.mp4   file2.mp4
file3.mp4   file4.mp4
file5.mp4   file6.mp4
file7.mp4   file8.mp4
file9.mp4   

将上述命令作为一行运行:

$ for i in *.mp4; do dateString=$(date +"%Y%m%d" \
    --date @$(stat -c %Z "$i")); mv "$i" "${dateString}_$i"; done

现在文件的命名如下:

$ ls | paste - -
20130828_file1.mp4  20130828_file2.mp4
20130828_file3.mp4  20130828_file4.mp4
20130828_file5.mp4  20130828_file6.mp4
20130828_file7.mp4  20130828_file8.mp4
20130828_file9.mp4  

细节

上述技术是使用stat命令来获取文件自纪元以来最后一次更改的时间(以秒为单位)。

  %Z     Time of last change as seconds since Epoch

然后命令使用该秒数date来确定YYNNDD这些秒数的时间。

date +"%Y%m%d" --date @...seconds...

笔记:这个@标志很重要,它告诉date我们正在发出的命令

一旦我们计算出来,YYMMDD我们就可以使用一个简单的mv命令来重命名文件。

另一种选择 - 在 Rockbox 中排序

使用日期前缀重命名文件的另一种方法是配置 Rockbox,以便它根据日期对文件进行排序。您还可以根据目录名称对目录进行排序。

这些设置位于菜单层次结构下:

                               摇滚盒->设置->常规设置->文件查看

                                  rockbox 设置的 ss

2 个关键设置是:

  • 排序目录- 设置为*按字母顺序”
  • 对文件进行排序- 设置为“按日期”

笔记:“对文件进行排序”也可以设置为“按最新日期”。

您可以在 Rockbox 网站上标题为的页面上查看有关上述设置的更多信息:8 常规设置

相关内容