如何从 Banshee 中的播放列表中导出所有 mp3?

如何从 Banshee 中的播放列表中导出所有 mp3?

我所有的音乐都存放在 /home/blah/Music/ 中,没有经过排序。它们存放在随机文件夹中,但这对我来说无关紧要,因为 Banshee 会处理好一切。我有一个很大的播放列表,其中包含了 2/3 的音乐。我如何将播放列表中列出的所有 mp3 文件复制到新文件夹中?

注意:我不是想导出播放列表,而是复制播放列表中列出的 mp3。

答案1

找到了解决方案,可适用于任何媒体播放器。

  1. 将播放列表导出为 m3u 文件。我将其命名为 playlist.m3u

  2. 在保存文件的文件夹中打开终端。

  3. 复制并粘贴此内容:

    sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do cp "${line}" '/path/to/output/folder/'; done
    

记得将路径更改为所需的输出文件夹。

注意:复制文件时终端不会提供任何输出,请耐心等待;)

答案2

我用 rhythmbox 做到了这一点,在桌面上创建一个文件夹并给它命名。现在找到你喜欢的播放列表,当音乐列表显示时,单击其中一首歌曲,然后按住 ctrl+a 高亮显示整个列表,现在将其拖放到桌面上的文件夹中。这应该会复制你的音乐。你也可以试试 clementine 音乐播放器,它有一些工具可以帮助你导出。

http://www.clementine-player.org/

答案3

好问题,这是一个非常需要的功能,奇怪的是很少有媒体播放器拥有这个功能。

您可以尝试这种方法,但在您的情况下可能会有局限性,特别是当您的播放列表非常大时,使用播放列表中的文件将数据 CD 写入磁盘,将生成的 .iso 映像保存在您想要的位置,然后将其提取出来。

步骤如下:

  • 在左侧选择您的播放列表。确保在右上方窗格中选择了所有艺术家。

  • 在右下方窗格中选择播放列表中的所有曲目。

  • 右键单击并单击写入 CD。

Brasero 应该从准备好刻录到 CD 的所有曲目开始,默认情况下它会想要写入音频 CD,现在可能会有太多的曲目可能无法放在音频 CD 上,所以下一步是更改 brasero 项目。

  • 单击 brasero 中的项目菜单,然后在弹出菜单中选择新数据项目。

系统会询问您“您是否要放弃文件选择或将其添加到新项目中?”

  • 单击保留文件选择按钮。

Brasero 现在可以将包含所有播放列表文件的 Iso 映像写入您选择的任何位置。

  • 单击右下角的刻录按钮,选择您的位置并命名 iso 映像,由于不需要进行转码或规范化,因此写入过程将相当快。

  • 右键单击 .iso 映像并将其提取,这将创建一个包含文件的文件夹。

如果您愿意,您可以继续刻录 CD 作为备份,或者如果您需要将副本提供给某人。

查看截图:

Banshee 主窗口

Banshee 写入 CD 菜单

Banshee 写入 CD 菜单

Brasero 音频 CD 项目窗口

Brasero Audio CD 项目,将其更改为数据项目

Brasero 项目选择

Brasero 菜单显示如何更改项目类型

Brasero 数据 CD 项目

可以处理大量 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 的,多次运行时不会复制歌曲两次。希望这对某些人有帮助 =)

相关内容