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

13

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

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

    
por The Negative Shape 18.05.2011 / 16:25

7 respostas

13

Eu fiz isso com o rhythmbox, faça uma pasta na sua área de trabalho dar um nome a ela. Agora encontrar a lista de reprodução que você gosta quando a lista de músicas mostra clique em uma das músicas e segure ctrl + uma alta luz a lista de furos agora arraste e solte-o para a pasta na sua área de trabalho. isso deve fazer cópia da sua música. você também pode experimentar o clementine music player, ele tem algumas ferramentas para ajudá-lo a exportar.

link

    
por MrMassiveManMeat 18.05.2011 / 19:44
14

Encontrou a solução e funciona com qualquer player de mídia.

  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. Copiar & amp; cole isto:

    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 são copiados, apenas seja paciente;)

    
por The Negative Shape 19.05.2011 / 12:01
4

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

Aqui está um método que você pode tentar, pode ter limitações no seu caso, especialmente se sua lista de reprodução for muito grande, gravar um CD de dados em disco com os arquivos da lista de reprodução, salvar a imagem .iso desejada e extrair isso.

Aqui estão os passos:

  • Selecione sua lista de reprodução à esquerda. Certifique-se de que todos os Artistas estejam selecionados no painel superior direito.

  • selecione todas as faixas na 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, ele quer gravar um CD de áudio, agora provavelmente haverá tantas faixas que não caberão em um CD de áudio, então o próximo passo é para mudar o projeto brasero.

  • Clique no menu de projeto no brasero e selecione Novo projeto de dados no menu suspenso.

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

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

O Brasero agora está pronto para escrever uma imagem ISO com todos os arquivos da sua lista de reprodução 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 você quiser, pode ir em frente e apenas gravar o CD como backup ou se precisar dar uma cópia para alguém.

Veja as capturas de tela:

Menu do CD de gravação do Banshee

Projeto do CD de áudio Brasero, altere isso para um projeto de dados

Os menus da Brasero mostrando como alterar o tipo de projeto

O projeto de dados que pode manipular uma boa quantidade de mp3s

    
por Sabacon 18.05.2011 / 19:11
3

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

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

Também deixarei meu script, pois pode ser útil para alguém. link

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 =)

    
por Арсений Пичугин 26.03.2014 / 07:17
0

Aqui está um script que eu uso para copiar arquivos do arquivo /home/user/playlist.m3u para a pasta / home / user / export / contanto que seus arquivos reais estão em / home / user / Music / se não apenas alterar a 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 em arrastar as entradas do banshee para uma pasta é que esse script manterá a hierarquia do /artists/albums/track.mp3 ou qualquer hierarquia que você tiver para refletir exatamente a lista de reprodução do m3u que você criar. Assim, não há duplicatas possíveis 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 irá sincronizar meu android muito caoticamente. Então eu quase tenho que usar isso para wifi transferir minha pasta de exportação.

    
por sinekonata 28.07.2012 / 23:03
0

Eu melhorei o script python dado pelo usuário: "Арсений Пичугин" para que ele preserve a estrutura do diretório 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 será realmente REPRODUZIDA, como em seu mp3 player ou telefone. O script assume que está na pasta de nível superior onde os arquivos de música estão localizados 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)

divirta-se!

    
por Guy Smiley 19.10.2015 / 16:50

Tags