Это полуответ, так как я не знаю вашу среду, и код, который я предоставляю, предназначен для использования только в качестве примера - его запуск не должен быть вредным, но я не могу дать никаких гарантий.
С такими задачами можно справиться с помощью простых сценариев bash, например, в следующем примере я использую eyeD3 для извлечения исполнителя и заголовка, затем бесплатное зеркало викилирики для извлечения текста и затем снова 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
Инструкция (запустить команды в терминале):
- установить
wget
и eyeD3
выпуститьsudo apt-get install wget eyed3
- сохранить приведенный выше код в файл, например
/home/user/lyrics_fetcher.sh
- добавить разрешение на запуск файла:
chmod u+x /home/user/lyrics_fetcher.sh
- запустите файл (обратите внимание на кавычки):
/home/user/lyrics_fetcher.sh "path_to_my_album"
- Вы можете остановить выполнение скрипта в любое время, нажав ctrl+c
Я проверил этот код с альбомом "AM" от Arctic Monkeys, и это было мило.
Я думаю, что если вы действительно хотите получить тексты песен для всех ваших альбомов одновременно, вы можете запустить скрипт в цикле для каждого каталога. Тем не менее, я бы не стал использовать его в качестве окончательного решения - вики-тексты и все, кто их поддерживает путем зеркалирования, являются хорошими парнями, и этот ответ здесь для того, чтобы стимулировать мышление, а не злоупотребление.