Faça o download de tags lastfm para um comentário em mp3 ou tag de gênero

6

Durante muito tempo, eu sonhei em ter as músicas lastfm na minha biblioteca de músicas, para que eu possa usá-las rapidamente para gerar playlists.

Costumava haver uma maneira de fazer isso no amarok 1.4, mas nunca foi estável.

Há o plugin lastfm / lastfmplus do MusicBrainz Picard. É parcialmente bem, mas não consigo fazer com que pareça APENAS para as tags lastfm e colocá-las em comentários / gênero / qualquer coisa, mas sempre marcar tudo. E não é particularmente bom com isso, especialmente com bandas pequenas, músicas sem álbum, etc.

Minha biblioteca de músicas é bem organizada. A maioria das tags está correta. Eu também tenho algumas músicas sem um álbum. E eu não quero encontrar os álbuns para essas músicas, já que isso iria atrapalhar a minha visão do álbum. Por isso, não deve tocar nos campos nome da faixa, número da faixa, artista e álbum. Tudo o que eu quero é que as tags lastfm mais populares entrem no gênero ou comentários tag do mp3, separados por ponto-e-vírgula, vírgula ou qualquer outra coisa.

Acho que me lembro de um roteiro que fez esse trabalho, mas não consigo encontrar.

Alguém sabe se existe algo assim? Seria difícil escrever isso, por exemplo, como plugin do Banshee?

Obrigado

    
por Meng Tian 23.08.2011 / 16:19

3 respostas

5

Eu cozinhei um script Python rapidamente. Você pode revisá-lo aqui: link ou faça o download aqui: link

Pelo que entendi, sua biblioteca está no formato MP3, então usei o ID3 tagger. Script busca as principais tags do last.fm e as coloca na tag COMMENT.
Se você me perguntar, embora "TopTags" sejam mais significativos do que "TrackTags" eles podem consistir em muito lixo

O script usa a Biblioteca Python padrão, exceto pelo módulo que grava tags - eyeD3 (sudo apt-get install python-eyed3)

Exemplo de uso (analisa todos os arquivos na pasta atual):

$ for f in *.mp3 ; do python lastfm_top-tags.py "$f" ; done

Uma linha bash semelhante também pode rastrear todas as subpastas.

Espero que seja útil:)

    
por zetah 24.08.2011 / 06:42
2

O script bash mencionado acima está fazendo o truque para mim - mas como eu o utilizaria para passar automaticamente pelos meus subdiretórios recursivamente? Meus subdiretórios e arquivos também têm espaços neles - então, como eu criaria scripts quando tivesse espaços em nomes de arquivos?

Eu procurei por aí e o envolvi com isso:

current_directory=$(pwd)
mp3_files=$(find "${current_directory}" -type f -iname "*.mp3")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n' 
for mp3_file in ${mp3_files}; do 
   python /home/bruce/lastfm_top-tags.py "$f" ; 
done

Mas estou pensando que não é bem assim.

    
por BruceG 28.01.2012 / 17:25
1

Torne o script executável e execute-o assim:

#!/bin/bash

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

for f in $(find ./ -type f -iname "*.mp3")
do
    lastfm_top-tags.py
    # or use this : python $HOME/bin/lastfm_top-tags.py "$f" ;
done

IFS=$SAVEIFS
    
por Michael 31.05.2012 / 00:33

Tags