冰淇淋:我怎样才能让冰淇淋不用以数字开头的文件命名

时间:2016-11-12 18:07:40

标签: linux debian

icecream将这样的文件命名为:nnnn-artist-songtitle。

如何将其更改为:artist-songtitle

我想它的类似

icecream --name="......"

但我找不到办法。我的手册页显示了这个

冰淇淋/ 1.3 用法:icecream [options] URL [URL ...]

options:
  -h, --help          print this message
  -q, --quiet         no printouts
  -v, --verbose       be verbose
  -t, --tracks        split into tracks when saving
  --name=NAME         save stream to file NAME. Format codes
                      are replaced as in the date command.
  --stop=N[units]     stop download after N (kb, mb, min, songs)
  --user-agent=AGENT  identify as AGENT stead of icecream/1.3
  --stdout            output stream to stdout (implies quiet)
  --sync              sync mpeg audio
  --debug             turn on debugging

我知道我可以使用今天日期作为输出的文件名

icecream -q --name 'radio_%Y_%m_%d' http://radio.com/playlist.pls

我想有艺术家和歌曲标题也有这样的%-codes,但看起来它们没有记录,这正是我的问题

请帮助。

1 个答案:

答案 0 :(得分:1)

icecream是一个perl脚本,因此我们可以检查是否确实存在未记录的%-code。只需打开脚本,看看它是如何完成的(v1.3中的1135行):

$config->{name} = strftime($config->{name},localtime(time));

因此,当您使用--name选项时,它只会调用POSIX函数strftime()as you can see here不会包含艺术家或歌曲标题的任何标记。

为什么您的文件的名称nnnn-artist-songtitle可以在647行找到:

my $fn = $trackid . $context->{title};

看起来它从播放列表中获得了标题并且预先设置了一个唯一的ID。如果您不希望在名称中包含ID,则可以将其删除并仅保留my $fn = $context->{title};

这将命名文件,因为它们在播放列表中命名。但是在此更改后,唯一性未被授予,因此某些文件可能会被覆盖。我建议制作icecream脚本的副本,并仅在您确定名称唯一的播放列表中使用修改后的版本。