web-dev-qa-db-ja.com

すべての音楽の歌詞を取得してファイルに保存するにはどうすればよいですか?

私は大きな音楽ライブラリを持っています(それらのほとんどは.mp3.m4aです)、どれも歌詞がありません。インターネットにクエリを実行して、すべての音楽に歌詞を自動的に追加するプログラムまたはプラグインはありますか?

私は通常インターネットに接続していないので、すべての歌詞を音楽ファイルのタグに自動的に追加してオフラインで表示できるプログラムが必要です。

14
Bharat

私はあなたの環境がわからないので、これは半回答です。私が提供するコードは例としてのみ使用することを目的としています-そのまま実行しても害はないはずですが、保証はできません。

このようなタスクは、単純なbashスクリプトを使用して処理できます。次の例では、eyeD3を使用してアーティストとタイトルを抽出し、次に無料のwikilyricsミラーを使用して歌詞を取得し、次にeyeD3を使用して新しいタグを保存します。同じコードを何度も悪用することは悪意があるとみなされる可能性があるため、このコードを使用するすべての人に別の歌詞APIを検索することをお勧めします。

#!/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

手順(ターミナルでコマンドを実行):

  1. eyeD3を発行してwgetおよびSudo apt-get install wget eyed3をインストールします
  2. 上記のコードをファイルに保存します。 /home/user/lyrics_fetcher.sh
  3. ファイルを実行する許可を追加します:chmod u+x /home/user/lyrics_fetcher.sh
  4. ファイルを実行します(引用符に注意してください):/home/user/lyrics_fetcher.sh "path_to_my_album"
  5. を押すと、いつでもスクリプトの実行を停止できます ctrl+c

Arctic Monkeysの「AM」アルバムでこのコードをチェックしましたが、うまくいきました。

すべてのアルバムの歌詞を一度に取得したい場合は、ディレクトリごとにループでスクリプトを実行できると思います。それでも、私はそれを最終的な解決策としては使いません。wikilyricsとそれをミラーリングでサポートする人は誰でも良い人です。この答えは、乱用ではなく思考を促進するためのものです。

5
cprn

最近、あなたの音楽の歌詞を自動的に取得してタグ付けするpythonスクリプトを書きました。 こちら をご覧ください。これにより、歌詞がtxtファイルとしてダウンロードされ、.mp3ファイルに埋め込まれます

Youtube Demo

3
yask
  • lrc.pl は、David Preciousを使用したパールスクリプトです Lyrics :: Fetcher パッケージ、MP3の歌詞のバッチダウンロード用.

  • Amarokプラグインも試してください ltimate Lyrics 。 Ultimate Lyricsは、多くのサイトから歌詞を取得する構成可能なスクリプトです。

  • 別のオプション:Lyrics拡張機能 banshee

1
totti

beets は、音楽ライブラリを整理するためのコマンドラインツールであり、歌詞や他の多くのものを自動的に取得できます。ウェブサイトから:

ビートの目的は、音楽コレクションをきっぱりと正しく取得することです。コレクションをカタログ化し、MusicBrainzデータベースを使用してメタデータを自動的に改善します。次に、音楽を操作したりアクセスしたりするための一連のツールを提供します。

具体的には、Lyric Wiki、Lyrics.com、Musixmatch、Genius.com、またはGoogleカスタム検索APIから歌詞を取得する lyricsプラグイン があります。

その周辺のコミュニティは非常に活発です。見てみな!

1
fhchl

音楽ファンとして私はあなたをお勧めします Guayadeque プレーヤー、高速で軽量でフル機能のプレーヤー、そして私が間違えなければデフォルトで歌詞拡張機能があります、私は今曲を通して聴いています、そしてそれはすべての曲の歌詞もバンドのバイオを示しています。歌詞を手動で曲に保存することもできますが、もちろんインターネットと同期する方が良いでしょう。とにかくそれはあなたの選択です。

Sudo add-apt-repository ppa:anonbeat/guayadeque

Sudo apt-get update

Sudo apt-get install guayadeque-svn
1
JoKeR

私は個人的に歌詞ファインダーを使用しています: https://www.lyricfinder.org/

フォルダの追加を使用して、フォルダを再帰的に検索し、すべての音楽ファイルを見つけてから、それらのID3タグに歌詞を見つけて追加しようとすることができます。

0
TheBlackKoala

Mp3nityは1.5か月間無料です(たぶん)。次に、プレミアムバージョンを購入する必要があります。アルバムのアートワークを埋め込みます。すべての音楽ファイルの歌詞を一度に取得できます。

0

lyrico 、pythonスクリプトを使用して歌詞をダウンロードし、ID3またはogg vorbisメタタグに埋め込みます。

0
cweiske