Qual é a maneira mais fácil de transformar uma lista de arquivos de música em uma lista de reprodução?

2

Eu recentemente mudei de windows para linux e o player que eu estava usando no windows armazenava a classificação para arquivos flac dentro de arquivos id3v2 que clementine, meu reprodutor de mídia linux preferido, não pode ler. Gostaria de criar uma lista de reprodução grande em um desses formatos: m3u, xspf, pls, asx, asx / ini, sugestão que eu posso importar e definir manualmente as classificações (em massa). Os arquivos que tenho são o resultado de encontrar arquivos de música onde o grep encontra "rating = x" ou "Rating.x" dentro do arquivo.

ETA: o arquivo de texto de entrada é assim:

./The Future Sound of London/The Isness/11 - Meadows.flac
./The Velvet Underground/The Velvet Underground/04 - Pale Blue Eyes.flac
./The Velvet Underground/The Velvet Underground/09 - The Murder Mystery.flac
./The Velvet Underground/The Velvet Underground/10 - After Hours.flac
./Sheryl Crow/C'mon, C'mon/02 - Soak Up The Sun.flac
./Sheryl Crow/Tuesday Night Music Club/11 - I Shall Believe.flac
./Sheryl Crow/Tuesday Night Music Club/07 - No One Said It Would Be Easy.flac
    
por William Everett 22.10.2013 / 18:16

1 resposta

2

Você pode transformar esse tipo de caminho relativo em uma lista m3u adicionando a seguinte linha ao topo do arquivo (e dando a ele uma extensão .m3u).

#EXTM3U

Mais informações sobre a Wikipédia .

Para referência, estas são as primeiras linhas do novo arquivo.

#EXTM3U

./Plain White T's/Every Second Counts/13 - Hey There Delilah.flac
./The Police/Every Breath You Take- The Singles/07 - Every Little Thing She Does Is  Magic.flac
./The Police/Every Breath You Take- The Singles/10 - Every Breath You Take.flac
./The Police/Every Breath You Take- The Singles/11 - King Of Pain.flac
./Roger Waters/Amused to Death/11 - Watching TV.flac

Para referência futura, aqui está algo que você pode executar a partir da linha de comando para gerar playlists com tags que parecem "rating = 1" ou algo semelhante.

for i in {1..5}; do printf "#EXTM3U\n" > ${i}star.m3u; find . -type f -exec grep -i -l --text "rating.$i" '{}' \; >> ${i}star.m3u; done
    
por 22.10.2013 / 19:12