¿Cómo puedo obtener letras de todas mis canciones y almacenarlas en los archivos?

14

Tengo una gran biblioteca de música (la mayoría de ellos son .mp3& .m4a) y ninguno de ellos tiene letras. ¿Existe algún programa o complemento que agregue automáticamente letras a toda mi música al consultar Internet?

Como normalmente no tengo conexión a Internet, necesito un programa que agregue automáticamente todas las letras a las etiquetas de archivos de música para poder verlas sin conexión.

Bharat
fuente
2
Añadir letras cómo? ¿A cada archivo de música? ¿De qué formato es tu colección de música? ¿Cómo piensa ver la letra que se encuentra?
fossfreedom
Todo lo que quiero es que cuando los archivos de música (principalmente .mp3 y .m4a) se reproduzcan en un reproductor de música y haga clic en "mostrar letra". Debería poder mostrar la letra. Y necesito algún software que haga eso para cada archivo de música (Todas mis etiquetas para archivos de música son correctas).
Bharat
2
Este comentario es muy diferente de la pregunta original. Al menos debe actualizar la pregunta para que refleje sus nuevos objetivos.
Luís de Sousa
Amarok y Clementine tienen una opción para editar las letras que se obtienen. No lo he probado, pero debe almacenarlos en algún lugar local y luego recuperarlos para usted. Hacer esto canción por canción sería realmente tedioso, pero probablemente funcionaría.
Joe
Hay un buen software llamado clementine. Intentalo. Tiene soporte para diferentes letras DB en línea. (Tenedor del viejo Amarok 1 *).
ddmytrenko

Respuestas:

5

Esta es una semi respuesta, ya que no conozco su entorno y el código que proporciono tiene la intención de servir solo como un ejemplo: ejecutarlo no debería causar ningún daño, pero no puedo dar ninguna garantía.

Tareas como esta pueden tratarse con simples secuencias de comandos bash, por ejemplo, en el siguiente ejemplo uso eyeD3 para extraer el artista y el título, luego un espejo de wikilyrics gratuito para buscar las letras y luego eyeD3 nuevamente para guardar la nueva etiqueta. Animo a todos los que usarán este código a buscar otra API de letras, ya que explotar el mismo servicio una y otra vez puede considerarse 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

Instrucciones (ejecutar comandos en la terminal):

  1. instalar wgety eyeD3emitiendosudo apt-get install wget eyed3
  2. guardar el código anterior en un archivo, por ejemplo /home/user/lyrics_fetcher.sh
  3. agregue permiso para ejecutar el archivo: chmod u+x /home/user/lyrics_fetcher.sh
  4. ejecuta el archivo (cuidado con las comillas): /home/user/lyrics_fetcher.sh "path_to_my_album"
  5. puede detener la ejecución del script en cualquier momento presionando ctrl+c

Verifiqué este código con el álbum "AM" de Arctic Monkeys y lo hizo dulcemente.

Supongo que si realmente quieres buscar letras de todos tus álbumes a la vez, puedes ejecutar el script en un bucle para cada directorio. Aún así, no lo usaría como una solución final: las wikilyrics y todos los que lo apoyan reflejando son buenos y esta respuesta está aquí para promover el pensamiento, no el abuso.

cprn
fuente
Hice exactamente lo que dijiste, guardé el código dado como lyrics_fetcher.sh en casa y luego ejecuté el comando en el punto 2 en la terminal. Luego ejecuté este comando "./lyrics_fetcher.sh / home / bharat / Music / Linkin-park / LIVING-THINGS ", ahora no hay más resultados. Soy un principiante completo, por favor, ayúdenme ..
Bharat
1. ¿Ejecutas todos los comandos en la terminal? (debe haber salida de terminal) 2. ¿Tiene instalado wget y eyeD3? Si no, ejecute 'sudo apt-get install wget eyed3'
cprn
@Bharat, deberías haber usado el comando ./lyrics_fetcher.sh "/home/bharat/Music/Linkin-park/LIVING-THINGS"En la carpeta en la que se encuentra el script. Te perdiste las comillas.
Ads20000
1
@ Ads20000 Agregué estas instrucciones más tarde cuando vi qué tipo de problema encontró Bharat. El fue notificado.
cprn
Recibí un error (en rojo) "el códec 'ascii' no puede codificar caracteres en la posición 25-26: ordinal no está en el rango (128)" mientras se ejecuta el script. Qué significa eso?
noir1993
3

Recientemente escribí un script de Python para buscar y etiquetar automáticamente letras de canciones en tu música. Compruébalo aquí . Esto descargará las letras como archivo txt y lo incrustará en su archivo .mp3

Demostración de Youtube .

yask
fuente
1
  • lrc.pl es un guión de perlas que utiliza el paquete de Letras :: Fetcher de David Precious , para la descarga por lotes de letras para MP3.

  • Pruebe también el complemento de Amarok Ultimate Lyrics . Ultimate Lyrics es un script configurable que busca letras de muchos sitios.

  • Otra opción: extensión de letras para banshee

totti
fuente
Realmente no ha respondido la pregunta, ¿puede descargar letras en masa y almacenar estas letras sin conexión dentro de los archivos de música?
fossfreedom
1

como fanático de la música, puedo recomendarle reproductor Guayadeque , reproductor rápido y ligero y con todas las funciones, y si no me equivoco, tiene extensiones de letras por defecto y hay capacidad de elegir más y, estoy escuchando canciones en este momento y se nota letras de cada canción, incluso la biografía de la banda. También es posible almacenar la letra de una canción manualmente, pero es mejor sincronizar con Internet, por supuesto, de todos modos es tu elección.

sudo add-apt-repository ppa:anonbeat/guayadeque

sudo apt-get update

sudo apt-get install guayadeque-svn
Bufón
fuente
Realmente no ha respondido la pregunta, ¿puede descargar letras en masa y almacenar estas letras sin conexión dentro de los archivos de música?
fossfreedom
sí, tiene un editor incorporado para configurar / opciones para editar canciones y pegar o escribir letras por sí mismo en una canción dentro del reproductor.
JoKeR
@JohnnyD. "por ti mismo": OP significa hacerlo automáticamente en lote, no manualmente uno por uno.
cprn
@CyprianGuerra tal vez no entendí lo que estaba preguntando :-)
JoKeR
1

remolachas es una herramienta de línea de comandos para organizar su biblioteca de música que puede buscar letras automáticamente, así como muchas otras cosas. Desde el sitio web:

El objetivo de las remolachas es hacer que su colección de música sea correcta de una vez por todas. Cataloga su colección, mejorando automáticamente sus metadatos a medida que avanza utilizando la base de datos MusicBrainz. Luego proporciona un conjunto de herramientas para manipular y acceder a tu música.

Específicamente, tiene un complemento de letras que obtiene letras de Lyric Wiki, Lyrics.com, Musixmatch, Genius.com o una API de búsqueda personalizada de Google.

La comunidad a su alrededor es muy activa. ¡Echale un vistazo!

fhchl
fuente
0

Mp3nity es gratis durante 1,5 meses (tal vez). Entonces tienes que comprar la versión premium. Incrusta obras de arte para álbumes. Puede obtener letras de todos sus archivos de música a la vez.

Sakchhyat Bhandary
fuente
0

Yo personalmente uso el buscador de letras: https://www.lyricfinder.org/

Puede usar agregar carpeta para que busque de forma recursiva a través de carpetas y encuentre todos los archivos de música y luego intente encontrar y agregar letras a la etiqueta ID3 de ellos.

TheBlackKoala
fuente
0

Uso lyrico , un script de python para descargar letras e incrustarlas en las metaetiquetas ID3 u ogg vorbis.

Cweiske
fuente