我所有的音乐都存放在 /home/blah/Music/ 中,没有经过排序。它们存放在随机文件夹中,但这对我来说无关紧要,因为 Banshee 会处理好一切。我有一个很大的播放列表,其中包含了 2/3 的音乐。我如何将播放列表中列出的所有 mp3 文件复制到新文件夹中?
注意:我不是想导出播放列表,而是复制播放列表中列出的 mp3。
答案1
找到了解决方案,可适用于任何媒体播放器。
将播放列表导出为 m3u 文件。我将其命名为 playlist.m3u
在保存文件的文件夹中打开终端。
复制并粘贴此内容:
sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do cp "${line}" '/path/to/output/folder/'; done
记得将路径更改为所需的输出文件夹。
注意:复制文件时终端不会提供任何输出,请耐心等待;)
答案2
我用 rhythmbox 做到了这一点,在桌面上创建一个文件夹并给它命名。现在找到你喜欢的播放列表,当音乐列表显示时,单击其中一首歌曲,然后按住 ctrl+a 高亮显示整个列表,现在将其拖放到桌面上的文件夹中。这应该会复制你的音乐。你也可以试试 clementine 音乐播放器,它有一些工具可以帮助你导出。
答案3
好问题,这是一个非常需要的功能,奇怪的是很少有媒体播放器拥有这个功能。
您可以尝试这种方法,但在您的情况下可能会有局限性,特别是当您的播放列表非常大时,使用播放列表中的文件将数据 CD 写入磁盘,将生成的 .iso 映像保存在您想要的位置,然后将其提取出来。
步骤如下:
在左侧选择您的播放列表。确保在右上方窗格中选择了所有艺术家。
在右下方窗格中选择播放列表中的所有曲目。
右键单击并单击写入 CD。
Brasero 应该从准备好刻录到 CD 的所有曲目开始,默认情况下它会想要写入音频 CD,现在可能会有太多的曲目可能无法放在音频 CD 上,所以下一步是更改 brasero 项目。
- 单击 brasero 中的项目菜单,然后在弹出菜单中选择新数据项目。
系统会询问您“您是否要放弃文件选择或将其添加到新项目中?”
- 单击保留文件选择按钮。
Brasero 现在可以将包含所有播放列表文件的 Iso 映像写入您选择的任何位置。
单击右下角的刻录按钮,选择您的位置并命名 iso 映像,由于不需要进行转码或规范化,因此写入过程将相当快。
右键单击 .iso 映像并将其提取,这将创建一个包含文件的文件夹。
如果您愿意,您可以继续刻录 CD 作为备份,或者如果您需要将副本提供给某人。
查看截图:
Banshee 写入 CD 菜单
Brasero Audio CD 项目,将其更改为数据项目
Brasero 菜单显示如何更改项目类型
可以处理大量 mp3 的数据项目
答案4
我也会留下我的脚本,因为它可能对某些人有用。 https://gist.github.com/CRImier/9777606
import os
import shutil
directory_name = "playlist/"
playlist_name = "playlist.m3u"
f = open(playlist_name, "r")
files = []
for line in f:
line = line.strip().strip("\n").strip("\r")
if line and not line.startswith("#"):
files.append(line)
dir_contents = os.listdir(directory_name)
for file in files:
try:
filename = os.path.basename(file)
if filename not in dir_contents:
shutil.copy(file, "playlist/")
print filename
else:
print ".", #File already there
except Exception as e:
print str(e)
它是纯 Python 的,多次运行时不会复制歌曲两次。希望这对某些人有帮助 =)