Đây là một câu trả lời nửa vì tôi không biết môi trường của bạn và mã tôi cung cấp chỉ nhằm làm ví dụ - chạy nó như không nên làm hại gì nhưng tôi không thể đảm bảo.
Các tác vụ như thế này có thể được xử lý bằng cách sử dụng các tập lệnh bash đơn giản, ví dụ như trong ví dụ sau tôi sử dụng eyeD3 để trích xuất nghệ sĩ và tiêu đề, sau đó là một nhân bản wikilyrics miễn phí để tìm lời bài hát và sau đó eyeD3 một lần nữa để lưu thẻ mới. Tôi khuyến khích mọi người sẽ sử dụng mã này để tra cứu API lời bài hát khác, vì việc khai thác cùng một dịch vụ nhiều lần có thể bị coi là độc hại.
#!/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
Hướng dẫn (chạy lệnh trong terminal):
- cài đặt
wget
và eyeD3
bằng cách phát hànhsudo apt-get install wget eyed3
- lưu mã ở trên vào một tập tin, vd
/home/user/lyrics_fetcher.sh
- thêm quyền để chạy tệp:
chmod u+x /home/user/lyrics_fetcher.sh
- chạy tập tin (nhớ các trích dẫn):
/home/user/lyrics_fetcher.sh "path_to_my_album"
- bạn có thể dừng thực thi tập lệnh bất cứ lúc nào bằng cách nhấn ctrl+c
Tôi đã kiểm tra mã này với album "AM" của Arctic Monkeys và nó đã làm rất ngọt ngào.
Nếu bạn thực sự muốn tìm nạp lời cho tất cả các album của mình cùng một lúc, bạn có thể chạy tập lệnh theo vòng lặp cho mỗi thư mục, tôi đoán vậy. Tuy nhiên, tôi sẽ không sử dụng nó như một giải pháp cuối cùng - wikilyrics và tất cả những người ủng hộ nó bằng cách phản chiếu đều là những người tốt và câu trả lời này có ở đây để thúc đẩy suy nghĩ, không lạm dụng.