Как я могу экспортировать все mp3-файлы из плейлиста в Banshee?

13

У меня есть вся моя музыка, несортированная в / home / blah / Music /. Это в случайных папках, что не имеет значения для меня, так как Banshee заботится обо всем. У меня большой плейлист, содержащий 2/3 моей музыки. Как я могу скопировать все mp3-файлы, перечисленные в списке воспроизведения, в новую папку?

Примечание. Я не пытаюсь экспортировать плейлист, но копирую mp3-файлы, указанные в плейлисте.

Негативная форма
источник

Ответы:

13

Я сделал это с помощью rhythmbox, сделайте папку на рабочем столе и дайте ей имя. Теперь найдите список воспроизведения, который вам нравится, когда список музыки показывает, нажмите на одну из песен и удерживайте Ctrl +, чтобы выделить список отверстий, перетащите его в папку на рабочем столе. это должно сделать копию вашей музыки. Вы также можете попробовать музыкальный проигрыватель Clementine, в котором есть несколько инструментов, которые помогут вам экспортировать.

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

MrMassiveManMeat
источник
4
+1 Это работает и с Банши.
Сабакон
1
Думаю, это не становится более интуитивным. В Banshee вы можете создавать умные плейлисты, это позволяет вам копировать именно то, что вы хотите.
Негативная форма
Спасибо, отлично работает, лучше всего использовать скрипты (я искал много). Ты мой герой
Indacochea Wachín
15

Нашел решение, работает с любым медиаплеером.

  1. Экспортируйте свой плейлист в файл m3u. Я назвал это playlist.m3u

  2. Откройте терминал в папке, где вы сохранили файл.

  3. Скопируйте и вставьте это:

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

Не забудьте изменить путь к нужной выходной папке.

Примечание: Терминал не выдаст никаких выводов, пока файлы копируются, просто наберитесь терпения;)

Негативная форма
источник
1
Потрясающие! Я хотел бы +1 это тысячу раз.
Пратюш
Это самый простой способ, если ваш игрок Банши. Благодарность!
нитины
4

Хороший вопрос, это очень нужная функция, странно, как мало медиаплееров.

Вот способ, который вы можете попробовать, он может иметь ограничения в вашем случае, особенно если ваш список воспроизведения очень большой, запишите компакт-диск с данными с файлами из списка воспроизведения, сохраните полученное изображение .iso, где вы хотите, и затем извлеките его.

Вот шаги:

  • Выберите свой плейлист слева. Убедитесь, что в верхней правой панели выбраны все исполнители.

  • выберите все треки в списке воспроизведения в нижней правой панели.

  • Щелкните правой кнопкой мыши и выберите «Запись CD».

Brasero должен начинаться со всех треков, готовых для записи на CD, по умолчанию он захочет записать аудио-CD, теперь, вероятно, будет так много треков, которые, возможно, не поместятся на аудио-CD, поэтому следующим шагом является изменение бразеро проект.

  • Щелкните меню проекта в Brasero, затем выберите «Новый проект данных» во всплывающем меню.

Вам будет задан вопрос "Вы хотите отменить выбор файла или добавить его в новый проект?"

  • Нажмите кнопку Сохранить выбор файла.

Теперь Brasero готов написать образ Iso со всеми файлами вашего плейлиста в любом месте, которое вы выберете.

  • Нажмите кнопку записи в правом нижнем углу, выберите свое местоположение и назовите ISO-изображение, процесс записи будет довольно быстрым, поскольку не выполняется перекодировка или нормализация.

  • Щелкните правой кнопкой мыши по образу .iso и распакуйте его, это создаст папку с файлами.

Если вы хотите, вы можете пойти дальше и просто записать компакт-диск в качестве резервной копии или если вам нужно дать кому-то копию.

Смотрите скриншоты:

Главное окно Банши

Банши написать CD меню

Банши написать CD меню

Окно проекта Brasero Audio CD

Проект Brasero Audio CD, измените это на проект данных

Выбор проекта Brasero

Меню Brasero, показывающее, как изменить тип проекта

Brasero data cd проект

Проект данных, который может обрабатывать большое количество mp3-файлов

Sabacon
источник
3

Спасибо The Negative Shape за это отличное решение! Я изменил его так, чтобы файлы переименовывались в соответствии с их положением в списке воспроизведения.

sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do (( COUNTER++ )); filename="${line##*/}"; cp "${line}" "/path/to/output/folder/$COUNTER - $filename"; done
СДЛ
источник
2

Я также оставлю свой сценарий, так как он может быть полезен для кого-то. 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 и не копирует песни дважды при многократном запуске. Надеюсь, это кому-нибудь поможет =)

Арсений Пичугин
источник
0

Вот скрипт, который я использую для копирования файлов из /home/user/playlist.m3u в папку / home / user / export /, если ваши фактические файлы находятся в / home / user / Music /, если не просто изменить одна строка в скрипте.

#!/bin/bash
m3u=$(sed /#.*/d "/home/user/playlist.m3u"|sed 's/\.\.\/\.\./\/home\/user/g');

echo "$m3u" | while read line; do
    newFile=$(echo $line| sed 's/\/home\/user\/Music\//\/home\/user\/export\//');
    newPath=$(echo "$newFile" | grep -o .*\\/);

    mkdir -p "$newPath";
    cp "$line" "$newFile";  
done;
exit 0;

Различие с перетаскиванием записей банши в папку состоит в том, что этот скрипт будет сохранять иерархию вашего /artists/albums/track.mp3 или любую другую иерархию, которая вам нужна, чтобы точно отражать любой созданный вами список воспроизведения m3u. Таким образом, дублирование невозможно, и каждый трек находится на прежнем месте.

Я сделал это, потому что на моем телефоне есть только MTP, и он немного мутен под Ubuntu. Плюс банши будет очень хаотично синхронизировать мой андроид. Таким образом, я почти должен использовать это, чтобы передать Wi-Fi мою папку экспорта.

sinekonata
источник
0

Я улучшил скрипт python, предоставленный пользователем: «Арсений Пичугин», чтобы он сохранял структуру каталогов при копировании файлов в новое место. Это позволяет вам затем скопировать файл .m3u и целевые музыкальные файлы на новое устройство, и ссылки не будут разорваны, поэтому плейлист действительно будет воспроизводиться, как на вашем mp3-плеере или телефоне. Сценарий предполагает, что он находится в папке верхнего уровня, где находятся музыкальные файлы и где находится файл .m3u.

import os
import shutil

#here, add the name of the dir where the playlist files will be copied
directory_name = "/home/username/Desktop/Music/"
playlist_name = "Test_Favorites.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)
#print dir_contents
for file in files:
    try:
        filename = os.path.basename(file)
        filepath = os.path.dirname(file)
        newpath = directory_name + "" + filepath
        newname = newpath + "/" + filename
        if os.path.exists(newname):
          print filename + " already existed, not copied."
        else:
          if not os.path.exists(newpath):
            os.makedirs(newpath)
          shutil.copy(file,newpath)
          print newname
    except Exception as e:
        print str(e)

наслаждаться!

Гай Смайли
источник