यह एक अर्ध उत्तर है क्योंकि मुझे आपके पर्यावरण का पता नहीं है और जो कोड मैं प्रदान करता हूं वह केवल एक उदाहरण के रूप में सेवा करने के लिए है - इसे चलाने से कोई नुकसान नहीं होना चाहिए लेकिन मैं कोई गारंटी नहीं दे सकता।
इस तरह के कार्यों को सरल बैश स्क्रिप्ट का उपयोग करके निपटा जा सकता है, उदाहरण के लिए उदाहरण में मैं कलाकार और शीर्षक निकालने के लिए eyeD3 का उपयोग करता हूं, फिर गीत को लाने के लिए एक मुफ्त विकिलीट्रिक्स दर्पण और फिर नए टैग को बचाने के लिए फिर से eyeD3। मैं हर उस व्यक्ति को प्रोत्साहित करता हूं जो इस कोड का उपयोग किसी अन्य गीत एपीआई को देखने के लिए करेगा, क्योंकि एक ही सेवा का बार-बार उपयोग करना दुर्भावनापूर्ण माना जा सकता है।
#!/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
मैंने आर्कटिक बंदरों द्वारा "एएम" एल्बम के साथ इस कोड की जाँच की और इसने मीठा किया।
यदि आप वास्तव में अपने सभी एल्बमों के लिरिक्स को एक बार में लाइक करना चाहते हैं, तो आप स्क्रिप्ट को प्रत्येक डायरेक्टरी के लिए लूप में चला सकते हैं, मुझे लगता है। फिर भी, मैं इसे अंतिम समाधान के रूप में उपयोग नहीं करूंगा - विकिलिक्स और जो भी इसे मिरर करके समर्थन करता है वह अच्छे लोग हैं और यह उत्तर यहां सोच को बढ़ावा देने के लिए है, दुरुपयोग नहीं।