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 sabia ler. Eu gostaria de criar uma grande lista de reprodução 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

1
Sua pergunta se resume à manipulação de arquivos de texto. Por favor editar sua pergunta e postar um exemplo de sua lista de arquivos de entrada e seu formato de saída desejado. Basta fazer uma lista de reprodução de teste e postar seu conteúdo aqui para que possamos saber como é o formato. By the way, o que faz você pensar que clementine não pode ler id3v2? Pode, então talvez as classificações não estejam nas tags, mas em um banco de dados interno armazenado pelo seu antigo player.
terdon

Existem alguns padrões diferentes para a saída e não sei o suficiente sobre a meta-informação necessária para saber qual fornecer (por isso listei todas as alternativas). Além disso, eu sei que a clementine não pode ler tags id3v2 do flac porque esta não é uma tag padrão para classificar um flac, nem é id3v2 um tipo de flag padrão para arquivos flac. Adicionando suporte para isso é um tópico um pouco debatido nos fóruns clementine, mas não parece ter sido implementado. Eu adicionei amostra de um dos arquivos de texto de entrada.
William Everett

Ah, flac, OK, eu pensei que você quis dizer que não pode ler id3v2 em tudo. OK, a playlist vai precisar de caminhos absolutos, não relativos como você postou, você também pode mostrar find / grep comando que você usou? Onde sua música é armazenada? Em ~/Music? Qualquer um dos formatos da lista de reprodução deve ser bom, uma vez que eles apenas apontam o player para o local dos arquivos. Basta escolher um formato e postar uma playlist mínima, assim posso escrever um pequeno script que pode criar um arquivo com esse formato.
terdon

Deixa pra lá. Eu descobri enquanto lia a documentação do padrão m3u.
William Everett

Respostas:


2

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

#EXTM3U

Mais informações na wikipedia .

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

Nice, +1. E não tem problemas com espaços em nomes de arquivos ou caracteres estranhos?
terdon

Ele não teve nenhum problema com espaços e também pegou músicas na minha pasta Håkon Austbø, que provavelmente tem os personagens mais estranhos do nome.
William Everett
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.