[Update 13.11.2009] Seit dem 02. August 2009 ist es LyricWiki nicht mehr erlaubt, Songtexte über sein API zur Verfügung zu stellen....

[Update 13.11.2009] Seit dem 02. August 2009 ist es LyricWiki nicht mehr erlaubt, Songtexte über sein API zur Verfügung zu stellen. Das bedeutet, daß die nachfolgend beschriebene Lösung zum Einbinden von Songtexten in iTunes-Musikstücke nicht mehr funktioniert. Auf der Seite LyricWiki API changes sind einige weitere Details vom LyricWiki-Schöpfer Sean Colombo zu erfahren.

iTunes hilft zwar bei der Suche nach Album-Covern, bietet aber kein Pendant für die Suche nach Songtexten. Auf dougscripts.com gibt es so manche AppleScript-Perle zu finden; so auch ein iTunes AppleScript von Doug Adams, mit dem anhand des Songnamens nebst Künstler aus iTunes heraus Songtexte auf LyricWiki.org gesucht und – falls gefunden – direkt in die Musikdatei (mp3) eingebunden werden können. Das Skript ist auch für weniger erfahrene Anwender sehr leicht in iTunes einzubinden und ebenso einfach zu bedienen: Song in iTunes anklicken, Skript aus dem Menü starten und den auf LyricWiki.org gefundenen Songtext in die Musikdatei übernehmen. Fertig!

Zur Installation: Auf der Seite Lyrics via LyricWiki steht eine *.dmg-Datei zum Download bereit. Wer statt des Installers gerne selber Hand anlegt, kann das untenstehende Script in eine Datei, bspw. LyricWiki.scpt, kopieren und diese im Verzeichnis ~/Library/iTunes/Scripts/ ablegen. Falls das Unterverzeichnis Scripts nicht existiert einfach “von Hand” anlegen.

  1. (*
  2. "Lyrics via LyricWiki" for iTunes
  3. written by Doug Adams
  4. dougadams@mac.com
  5. Thanks to the many Correspondents who emailed me info on the SOAP command.
  6. <http://lyricwiki.org/LyricWiki_talk:SOAP>
  7.  
  8. v1.1 may 11 2009
  9. - addressed issue with high-ASCII text
  10.  
  11. v1.0 February 28 2009
  12. -- initial release
  13.  
  14. Get more free AppleScripts and info on writing your own
  15. at Doug's AppleScripts for iTunes
  16. http://dougscripts.com/itunes/
  17. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
  18. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
  19. Get a copy of the GNU General Public License by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  20. or visit http://www.gnu.org/copyleft/gpl.html
  21. *)
  22.  
  23. property my_title : "Lyrics via LyricWiki"
  24. property nom : ""
  25. property art : ""
  26. global sel
  27. tell application "iTunes"
  28.   if player state is playing then
  29.     set sel to current track
  30.     tell sel to set {nom, art} to {get name, get artist}
  31.   else if selection is not {} and (count items of selection) is 1 then
  32.     set sel to item 1 of selection
  33.     tell sel to set {nom, art} to {get name, get artist}
  34.   else
  35.     return
  36.   end if
  37. end tell
  38.  
  39. -- log {nom, art}
  40. if nom is "" or art is "" then
  41.   display dialog "The track does not have enough information to search LyricWiki." buttons {"OK"} with icon stop with title my_title
  42.   return
  43. end if
  44. try
  45.   tell application "http://lyricwiki.org/server.php" to set rez to (call soap {method name:"getSong", method namespace uri:"urn:LyricWiki", SOAPAction:"urn:LyricWiki#getSong", parameters:{artist:art as text, song:nom as text}})
  46. on error m
  47.   tell application "iTunes"
  48.     display dialog "Error from LyricWiki:" & return & return & tab & m with title my_title
  49.   end tell
  50. end try
  51.  
  52. -- log rez
  53. set theLyrics to do shell script "echo " & quoted form of ((lyrics of rez) as text) & " | iconv -t ISO-8859-1 -f UTF-8"
  54. set lyricWikiPageURL to |url| of rez
  55.  
  56. -- copy to lyrics or display LyricsWiki page?
  57. if theLyrics does not contain "Not found" then
  58.   set displayLyrics to my text_to_list(theLyrics, (ASCII character 13))
  59.   set opt to (choose from list displayLyrics with prompt (art & return & "\"" & nom & "\"") as text OK button name "Use Lyrics for Track" with empty selection allowed)
  60.   if opt is false then return
  61.   (*
  62.     tell application "Finder"
  63.       open location lyricWikiPageURL
  64.     end tell
  65.   *)
  66.   tell application "iTunes"
  67.     try
  68.       set sel's lyrics to theLyrics
  69.     end try
  70.   end tell
  71. else
  72.   display dialog "Lyrics for \"" & art & "\" - \"" & nom & "\" not found at LyricWiki." buttons "OK" with icon stop with title my_title
  73. end if
  74.  
  75. on text_to_list(txt, delim)
  76.   set saveD to AppleScript's text item delimiters
  77.   try
  78.     set AppleScript's text item delimiters to {delim}
  79.     set theList to every text item of txt
  80.     on error errStr number errNum
  81.     set AppleScript's text item delimiters to saveD
  82.     error errStr number errNum
  83.   end try
  84.   set AppleScript's text item delimiters to saveD
  85.   return (theList)
  86. end text_to_list

Nutzung: Nach Auswahl einer Musikdatei In iTunes den Eintrag “LyricWiki” im Script-Menü (sieht wie eine Schritftrolle aus) wählen. Falls keine Lyrics auf LyricWiki.org für den gewählten Song gefunden werden, gibt das Script eine entsprechende Meldung aus. Andernfalls wird der Songtext angezeigt und kann, falls gewünscht, in die Musikdatei übernommen werden.

Leave a Reply

Your email address will not be published. Required fields are marked *