Como posso exportar todos os mp3s de uma lista de reprodução no Banshee?

13

Eu tenho todas as minhas músicas, sem classificação em / home / blah / Music /. Está em pastas aleatórias, o que não importa para mim, já que a Banshee cuida de tudo. Eu tenho uma grande lista de reprodução contendo bons 2/3 da minha música. Como posso copiar todos os arquivos mp3 listados na lista de reprodução em uma nova pasta?

Nota: Não estou tentando exportar uma lista de reprodução, mas copie os mp3s listados na lista de reprodução.

A forma negativa
fonte

Respostas:

13

Eu fiz isso com o rhythmbox, faça uma pasta na sua área de trabalho dar um nome. agora encontre a lista de reprodução que você gosta quando a lista de músicas aparecer, clique em uma das músicas e mantenha pressionada a tecla Ctrl + luz alta da lista de furos agora arraste e solte-a na pasta da área de trabalho. isso deve fazer cópias de sua música. você também pode tentar o Clementine Music Player, que possui algumas ferramentas para ajudá-lo a exportar.

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

MrMassiveManMeat
fonte
4
+1 Isso funciona com o Banshee também.
Sabacon 18/05
1
Acho que não fica mais intuitivo. No Banshee, você pode criar listas de reprodução inteligentes, permitindo copiar exatamente o que deseja.
A forma negativa
Obrigado, funcionando bem, é melhor usar scripts (procurei em muitos). Você é meu herói #
Indacochea Wachín 20/17/17 /
15

Encontrou a solução, funciona com qualquer media player.

  1. Exporte sua lista de reprodução para um arquivo m3u. Eu chamei de playlist.m3u

  2. Abra um terminal na pasta onde você salvou o arquivo.

  3. Copie e cole este:

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

Lembre-se de alterar o caminho para a pasta de saída desejada.

Nota: O terminal não fornecerá nenhuma saída enquanto os arquivos forem copiados, apenas seja paciente;)

A forma negativa
fonte
1
Impressionante! Eu gostaria de poder marcar com +1 mil vezes.
Pratyush 14/07/12
Esta é a maneira mais fácil, se o seu jogador Banshee. Obrigado!
nitins
4

Boa pergunta, esse é um recurso muito necessário. É estranho como poucos players de mídia o possuem.

Aqui está um método que você pode tentar: ele pode ter limitações no seu caso, especialmente se a sua lista de reprodução for muito grande, grave um CD de dados em disco com os arquivos da lista de reprodução, salve a imagem .iso resultante onde desejar e extraia-a.

Aqui estão os passos:

  • Selecione sua lista de reprodução à esquerda. Verifique se todos os artistas estão selecionados no painel superior direito.

  • selecione todas as faixas da lista de reprodução no painel inferior direito.

  • Clique com o botão direito e clique em Gravar CD.

O Brasero deve começar com todas as faixas prontas para serem gravadas em CD; por padrão, você deseja gravar um CD de áudio; agora provavelmente haverá tantas faixas que não caberão em um CD de áudio; portanto, o próximo passo é alterar o projeto brasero.

  • Clique no menu do projeto no brasero e selecione Projeto de novos dados no menu flutuante.

Você será perguntado "Deseja descartar a seleção de arquivo ou adicioná-la ao novo projeto?"

  • Clique no botão Manter seleção de arquivo.

Agora, o Brasero está pronto para gravar uma imagem ISO com todos os arquivos da sua playlist em qualquer local que você escolher.

  • Clique no botão de gravação no canto inferior direito, escolha sua localização e nomeie a imagem ISO, o processo de gravação será bastante rápido, pois nenhuma transcodificação ou normalização é feita.

  • Clique com o botão direito na imagem .iso e extraia-a, isso criará uma pasta com os arquivos.

Se desejar, você pode continuar e gravar o CD como backup ou se precisar dar uma cópia a alguém.

Veja as capturas de tela:

Janela principal do Banshee

Banshee escreve o menu do CD

Banshee escreve o menu do CD

Janela do projeto Brasero Audio CD

Projeto Brasero Audio CD, altere para um projeto de dados

Seleção de projetos Brasero

Os menus Brasero mostrando como alterar o tipo de projeto

Projeto Brasero data cd

O projeto de dados que pode lidar com uma quantidade razoável de mp3s

Sabacon
fonte
3

Obrigado The Negative Shape por esta ótima solução! Eu o modifiquei para que os arquivos sejam renomeados de acordo com sua posição na lista de reprodução.

sed "s/#.*//g" < playlist.m3u | sed "/^$/d" | while read line; do (( COUNTER++ )); filename="${line##*/}"; cp "${line}" "/path/to/output/folder/$COUNTER - $filename"; done
sdl
fonte
2

Também deixarei meu script, pois pode ser útil para alguém. 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)

É puro Python e não copia músicas duas vezes quando executado várias vezes. Espero que isso ajude alguém =)

Арсений Пичугин
fonte
0

Aqui está um script que eu uso para copiar arquivos do arquivo /home/user/playlist.m3u para a pasta / home / user / export / , desde que os arquivos reais estejam em / home / user / Music /, se não apenas mudar o uma linha no script.

#!/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;

A diferença ao arrastar as entradas do banshee para uma pasta é que esse script manterá a hierarquia de seus /artists/albums/track.mp3 ou qualquer hierarquia que você tenha para refletir exatamente qualquer playlist m3u criada. Portanto, desta maneira, não é possível duplicar e todas as faixas estão em seu lugar anterior.

Eu fiz isso porque meu telefone só tem MTP e é um pouco nebuloso no Ubuntu. Além disso, o banshee sincronizará meu android de forma muito caótica. Então, eu quase tenho que usar isso para transferir wifi minha pasta de exportação.

sinekonata
fonte
0

Aprimorei o script python fornecido pelo usuário: "Арсений Пичугин" para preservar a estrutura de diretórios ao copiar arquivos para um novo local. Isso permite que você copie o arquivo .m3u e os arquivos de música de destino para um novo dispositivo, e os links não serão quebrados; portanto, a lista de reprodução REPRODUZIRÁ, como no seu mp3 player ou telefone. O script pressupõe que ele esteja na pasta de nível superior onde os arquivos de música são encontrados e onde o arquivo .m3u está localizado.

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)

apreciar!

Guy Smiley
fonte