Como posso buscar letras de todas as minhas músicas e armazená-las nos arquivos?

14

Eu tenho uma grande biblioteca de músicas (a maioria é .mp3& .m4a) e nenhuma delas tem letras. Existe algum programa ou plug-in que adicione letras automaticamente a todas as minhas músicas consultando a Internet?

Como normalmente não tenho conexão com a Internet, preciso de um programa que adicione automaticamente todas as letras às tags dos arquivos de música para que eu possa visualizá-las offline.

Bharat
fonte
2
Adicionar letra como? Para cada arquivo de música? Qual formato é sua coleção de músicas? Como você pretende ver a letra encontrada?
fossfreedom
Tudo o que eu quero é que quando os arquivos de música (principalmente .mp3 e .m4a) sejam reproduzidos em um music player e clico em "exibir letras", ele poderá exibir as letras. E eu preciso de algum software que faça isso para todos os arquivos de música (todas as minhas tags para arquivos de música estão corretas).
Bharat
2
Este comentário é muito diferente da pergunta original. Você deve pelo menos atualizar a pergunta para que ela reflita seus novos objetivos.
Luís de Sousa
Amarok e Clementine têm uma opção para editar as letras que são buscadas. Eu não tentei, mas deve armazená-los em algum lugar local e depois recuperá-los para você. Fazer isso música por música seria muito tedioso, mas provavelmente funcionaria.
Joe
Existe um bom software chamado clementine. Tente. Tem suporte para diferentes DBs de letras online. (Garfo do velho Amarok 1 *).
ddmytrenko

Respostas:

5

Esta é uma semi-resposta, pois não conheço o seu ambiente e o código que forneço deve servir apenas de exemplo - executá-lo como deveria não causar nenhum dano, mas não posso dar nenhuma garantia.

Tarefas como essa podem ser tratadas usando scripts simples do bash, por exemplo, no exemplo a seguir, uso o eyeD3 para extrair artista e título, em seguida, um espelho wikilyrics gratuito para buscar a letra e, em seguida, eyeD3 novamente para salvar a nova tag. Encorajo todos os que usarem esse código a procurar outra API de letras, pois explorar o mesmo serviço repetidamente pode ser considerado malicioso.

#!/bin/bash

_TPL='http://makeitpersonal.co/lyrics?artist=<artist>&title=<title>'
_SRY="Sorry, We don't have lyrics for this song yet."

[ "$1" ] && _PATH="$1" || _PATH=$PWD

cd $_PATH

for _FILE in {*.mp3,*.m4a}; do
    if [[ -r $_FILE ]]; then
        _SONG=$(eyeD3 --no-color "$_FILE" | grep title)

        _ARTIST="${_SONG#*"artist: "}"
        _TITLE="${_SONG%"artist: "*}"
        _TITLE="${_TITLE#"title: "}"

        echo -n "$_ARTIST - $_TITLE"

        _ARTIST="${_ARTIST// /+}"
        _TITLE="${_TITLE// /+}"
        _URL="${_TPL//"<artist>"/$_ARTIST}"
        _URL="${_URL//"<title>"/$_TITLE}"

        _LYRICS=$(wget -qO- $_URL)

        if [ "$_LYRICS" != "$_SRY" ]; then
            eyeD3 --lyrics=eng:Lyrics:"$_LYRICS" "$_FILE" 1>/dev/null
        else
            echo "No lyrics found... skipping!"
        fi
    fi
done

cd $OLDPWD

Instruções (executar comandos no terminal):

  1. instalar wgete eyeD3emitindosudo apt-get install wget eyed3
  2. salve o código acima em um arquivo, por exemplo /home/user/lyrics_fetcher.sh
  3. adicione permissão para executar o arquivo: chmod u+x /home/user/lyrics_fetcher.sh
  4. execute o arquivo (observe as aspas): /home/user/lyrics_fetcher.sh "path_to_my_album"
  5. você pode interromper a execução do script a qualquer momento pressionando ctrl+c

Eu verifiquei esse código com o álbum "AM", do Arctic Monkeys, e foi muito bem.

Se você realmente deseja buscar letras de todos os seus álbuns de uma só vez, pode executar o script em um loop para cada diretório, eu acho. Ainda assim, eu não o usaria como uma solução final - a wikilyrics e todos que a apoiam espelhando são bons rapazes e esta resposta está aqui para promover o pensamento, não o abuso.

cprn
fonte
Fiz exatamente como você disse, salvei o código fornecido como lyrics_fetcher.sh em casa e, em seguida, executei o comando no ponto 2 no terminal.Em seguida, execute este comando "./lyrics_fetcher.sh / home / bharat / Music / Linkin-park / Living-coisas", agora não há mais output.I sou um novato completo, por favor me ajude ..
Bharat
1. Você executa todos os comandos no terminal? (deve haver saída do terminal) 2. Você tem o wget e o eyeD3 instalados? Caso contrário, execute 'sudo apt-get install wget eyed3'
cprn
@Bharat, você deveria ter usado o comando ./lyrics_fetcher.sh "/home/bharat/Music/Linkin-park/LIVING-THINGS"Na pasta em que o script está. Você perdeu as aspas.
Ads20000 14/05
1
@ Ads20000 Adicionei essas instruções mais tarde quando vi que tipo de problema Bharat encontrou. Ele foi notificado.
cprn 14/05
Eu recebi um erro (em vermelho) "O codec 'ascii' não pode codificar caracteres na posição 25-26: ordinal fora do intervalo (128)" durante a execução do script. O que isso significa?
precisa saber é o seguinte
3

Recentemente, escrevi um script em python para buscar e marcar automaticamente as letras das suas músicas. Confira aqui . Isso fará o download da letra como arquivo txt e a incorporará ao seu arquivo .mp3

Demonstração do YouTube .

yask
fonte
1
  • O lrc.pl é um script pérola usando o pacote Lyrics :: Fetcher de David Precious , para o download em lote de letras para MP3.

  • Experimente também o plug-in Ultimate do Amarok . Ultimate Lyrics é um script configurável que busca letras de vários sites.

  • Outra opção: extensão de letras para banshee

totti
fonte
Você realmente não respondeu à pergunta - você pode baixar as letras em massa - e armazenar essas letras offline nos próprios arquivos de música?
fossfreedom
1

como fã de música, recomendo o player Guayadeque , rápido, leve e com todos os recursos, e se não me engano, há extensões de letras por padrão e há a capacidade de escolher mais e quais, estou ouvindo músicas agora e isso mostra letras para todas as músicas até a biografia da banda. Também é possível armazenar as letras de uma música manualmente, mas é melhor sincronizar com a Internet, é claro, de qualquer maneira, é sua escolha.

sudo add-apt-repository ppa:anonbeat/guayadeque

sudo apt-get update

sudo apt-get install guayadeque-svn
Palhaço
fonte
Você realmente não respondeu à pergunta - você pode baixar as letras em massa - e armazenar essas letras offline nos próprios arquivos de música?
fossfreedom
sim, ele possui um editor embutido para configuração / opção de editar uma música e colar ou escrever uma letra para uma música no player.
JoKeR
@JohnnyD. "sozinho" - o OP pretendia fazê-lo automaticamente em lote, não manualmente um por um.
Cprn 14/05
@CyprianGuerra talvez eu tenha entendido errado o que ele estava perguntando :-)
JoKeR
1

O beterrabas é uma ferramenta de linha de comando para organizar sua biblioteca de músicas que pode buscar letras automaticamente, além de muitas outras coisas. A partir do site:

O objetivo das beterrabas é acertar sua coleção de músicas de uma vez por todas. Ele cataloga sua coleção, melhorando automaticamente seus metadados à medida que utiliza o banco de dados MusicBrainz. Em seguida, fornece um buquê de ferramentas para manipular e acessar sua música.

Especificamente, ele tem um plug-in de letras que busca letras do Lyric Wiki, Lyrics.com, Musixmatch, Genius.com ou uma API de pesquisa personalizada do Google.

A comunidade ao redor é muito ativa. Confira!

fhchl
fonte
0

O Mp3nity é gratuito por 1,5 meses (talvez). Então você tem que comprar a versão premium. Ele incorpora obras de arte para álbuns. Você pode obter letras de todos os seus arquivos de música de uma só vez.

Sakchhyat Bhandary
fonte
0

Eu pessoalmente uso o localizador de letras: https://www.lyricfinder.org/

Você pode usar a adição de pasta para que ela procure recursivamente as pastas e encontre todos os arquivos de música e tente encontrar e adicionar letras à etiqueta ID3 deles.

TheBlackKoala
fonte
0

Eu uso o lyrico , um script python para baixar as letras e incorporá-las às metatags ID3 ou ogg vorbis.

cweiske
fonte