For de av oss som har iPhone/iPod Touch er det fint å kunne se tekstene på sangene når de spilles. Problemet er at ingen sanger har tekster integrert i utgangspunktet og at du følgelig ikke får brukt funksjonen. Vi har tidligere dekket forskjellige widget-løsninger som gjør jobben for deg, men nå har en Mac1-bruker laget en ny og alternativ løsning som baserer seg på Ruby.
Mac1-brukeren evenv har utviklet en Ruby-løsning som fungerer i Mac OS X og med iTunes.
Jeg har lenge sett etter en måte å hente sangtekster til sangene i iTunes-biblioteket mitt, men har ikke funnet noen god løsning. De fleste programmene og widgetene henter bare ned sangtekster for sangen du spiller der og da. Ettersom jeg ønsker å fylle iPhonen med sangtekster fungerer ikke dette så bra.
Derfor lagde jeg et lite script som tar seg av automatisk innhenting. Scriptet er laget i Ruby og bruker gems for å snakke med iTunes og LyricWiki.
Scriptet kan hentes ned på mine sider.
Jeg må nevne at scriptet tok i underkant av en halvtime å kode, og er på 20 kodelinjer, noe som sier endel om hvor kraftige disse verktøyene er. Oppfordrer samtlige lesere til å kikke litt på Ruby og spesielt rb-appscript, som gjør det usedvanlig enkelt å kommunisere med OS X-programmer.
oddiZ lør, 09/08/2008 - 21:29
Jeg bruker MPFreaker http://www.lairware.com/mpfreaker/
Den henter all musikk data.
gutilanen lør, 09/08/2008 - 22:12
Har du noen gode linker til steder hvor man kan lære seg ruby/rb-applescript?
prelude6x6 lør, 09/08/2008 - 22:24
Er ikke kjent med Ruby, men når jeg kjører "ruby lyrics.rb" så får jeg denne erroren:
lyrics.rb:1: syntax error, unexpected $undefined, expecting '}'
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf330
^
EDIT: nvm, hadde bare kopiert koden feil :)
Takk for fint script :D
gits lør, 09/08/2008 - 22:51
Hva mener du med kopiert feil? Får samme feilmelding!
Anders16 lør, 09/08/2008 - 23:04
noen som vil fortelle step by step kordan eg ska gjøra dette? skjønner ikke noe av dt:S :P
et lør, 09/08/2008 - 23:23
Jeg fikk også problemer, men det viste seg at det må være et ekstra linjeskift nederst i filen. Filen må videre kjøres med "ruby filnavn.rb" i terminalen.
Macbruker20 lør, 09/08/2008 - 23:20
Jeg har også trøbbel, får følgende feilmelding:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- appscript (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require'
from test.rb:2
KDN søn, 10/08/2008 - 02:30
Nice, takk.
1. Skriv "sudo gem install rb-appscript" i terminal
2. Kopier inn koden i et kode program(jeg brutke coda) og lagre det som dittnavnpåfilen.rb på skrivebordet/desktopen ditt/din.
3. Skriv "cd desktop" i terminal.
4. Merk av de sangene du vil ha texter på(jeg valgte alle) i iTunes.
5. Skriv "ruby dittnavnpåfilen.rb" i terminal. Vent på at den henter texter.
Done!
NB! Alt skal selvsakt skrives i terminal uten "".
evenv søn, 10/08/2008 - 02:16
@KDN: Takk for god step-by-step, jeg ser i ettertid at jeg kunne skrevet litt klarere hva man må gjøre for å få dette til å fungere.
@gutilanen: Rubys hjemmeside har mange gode linker til tutorials og liknende, men spesielt "Why's Poignant Guide to Ruby" har oppnådd tilnærmet legendestatus i programmeringsmiljøet, og anbefales vel så mye for underholdning som for å lære seg litt Ruby.
@Macbruker20: Husket du å gjøre steg 1 i KDNs liste?
bep man, 11/08/2008 - 02:16
Et lignende script for Windows:
Merk: scriptet tar hele biblioteket ditt.
Redigert innlegg: La inn et filter på videoer...
EDIT 2: La inn UTF-8 som løser noen bokstav-problemer, men ikke alle... + Litt error-handling. Vi fortsetter ved XML feil.
EDIT 3: Setter teksten "NA" i de sangene scriptet ikke finner + litt mer robust. Jeg har kjørt igjennom hele samlinga mi nå.
EDIT 4: OK, nå kjører den uten stopp gjennom hele samlinga mi. Mer robust.
require 'win32ole'
require 'soap/wsdlDriver'
itunes = WIN32OLE.new('iTunes.Application')
WIN32OLE.codepage = WIN32OLE::CP_UTF8
driver = SOAP::WSDLDriverFactory.new("http://lyricwiki.org/server.php?wsdl").create_rpc_driver
library = itunes.LibraryPlaylist
for track in library.tracks
next if track.Kind == 3 or track.KindAsString.rindex("video")
begin
lyrics = track.lyrics
rescue WIN32OLERuntimeError => error
print "WIN32OLERuntimeError running script for artist #{track.artist}, title #{track.name} \nError: #{error.inspect}\n"
next
end
if lyrics == "Not found" or lyrics.empty?
artist = track.artist
title = track.name
begin
lyrics = driver.getSong(artist,title).lyrics
if lyrics == "Not found"
puts "Found nothing for #{artist}: #{title}"
track.lyrics = "NA"
else
track.lyrics = lyrics
puts "Updated #{artist}: #{title}"
end
rescue XSD::ValueSpaceError => error
print "XML Error running script for artist #{artist}, title #{title} \nError: #{error.inspect}\n"
rescue WIN32OLERuntimeError => OLE_error
print "WIN32OLERuntimeError running script for artist #{track.artist}, title #{track.name} \nError: #{OLE_error.inspect}\n"
end
end
end
puts "\n\nDone..."
Amnura søn, 10/08/2008 - 07:12
Jeg får trøbbel allerede ved punkt 1 i guiden. Noen som vet hva det kommer av?
--------------------------------------------
amnura:~ amnura$ sudo gem install rb-appscript
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions. This could take a while...
ERROR: Error installing rb-appscript:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install rb-appscript
can't find header files for ruby.
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/rb-appscript-0.5.1 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/rb-appscript-0.5.1/gem_make.out
amnura:~ amnura$
WZot søn, 10/08/2008 - 08:42
@Amnuare Ettersom jeg forstår feilmeldingen så må du sannsynligvis ha Xcode installert. Finner den på http://developer.apple.com/technology/xcode.html hvis du ikke har det allerede. Men nå er ikke jeg Ruby guru så er ikke 100% sikker.
GeirAasen søn, 10/08/2008 - 09:07
@Amnura:
jeg googla "ERROR: Failed to build gem native extension" og fant ut (som WZot har skrivi) at det er Xcode-pakka som mangler for å få dette til. Denne kan installeres fra "Optional installs" på leopard-skiva di. =)
fra http://www.macruby.org/trac/wiki/Troubleshooting:
Lukas søn, 10/08/2008 - 10:30
"For de av oss som har iPhone/iPod Touch er det fint å kunne se tekstene på sangene når de spilles."
Nå er jeg sikkert litt tett her, men hva er det som er fint med det?
svar søn, 10/08/2008 - 10:34
Bare feilmelding her:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/uri/common.rb:436:in `split': bad URI(is not URI?): http://lyricwiki.org/server.php wsdl (URI::InvalidURIError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/uri/common.rb:485:in `parse'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/wsdl/xmlSchema/importer.rb:28:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/wsdl/importer.rb:18:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/wsdlDriver.rb:124:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/wsdlDriver.rb:28:in `initialize'
from lyrics.rb:6:in `new'
from lyrics.rb:6
espenhogbakk søn, 10/08/2008 - 11:10
Får samme feilmelding som "svar" og har fulgt guiden til punkt og prikke og har XCode og alt... Merkelig...
EDIT:
Ser ut som serveren er nede, og passer bra for jeg får en connection error... Noen som vet om den er permanent nede? Og er det noen sjangs for at det er dette scriptet som har tatt ned serveren?
Macbruker20 søn, 10/08/2008 - 11:19
Da har jeg blitt kvitt første feilmeldingen, manglet Xcode, men nå er det en ny en som plager meg:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:564:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:564:in `open'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:564:in `connect'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:48:in `timeout'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:564:in `connect'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:557:in `do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:546:in `start'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/netHttpClient.rb:115:in `start'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/netHttpClient.rb:104:in `get_content'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/wsdl/xmlSchema/importer.rb:64:in `fetch'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/wsdl/xmlSchema/importer.rb:30:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/wsdl/importer.rb:18:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/wsdlDriver.rb:124:in `import'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/wsdlDriver.rb:28:in `initialize'
from test.rb:6:in `new'
from test.rb:6
evenv søn, 10/08/2008 - 11:23
@amnura, WZot, armandg: Dette tenkte jeg ikke på, har hatt XCode siden jeg installerte Leopard så det falt meg ikke inn. Men ja, ut fra feilmeldingene ser det ut som det er der problemet ligger.
evenv søn, 10/08/2008 - 11:24
@espenc, svar: Jepp, ser ut som serveren til lyricwiki er nede. Ser at siden med scriptet har 287 hits siste to døgn, så selv om 287*avg(antall sanger i iTunes) blir endel oppslag vil jeg bli noe overrasket om det er det som er årsaken... Og permanent nede er den nok ikke - vi snakker om etter hva jeg vet den største og mest brukte lyricdatabasen på nettet.
svar søn, 10/08/2008 - 11:40
Ser jammen slik ut ja :(
evenv søn, 10/08/2008 - 20:58
Da er lyricwiki oppe igjen. Det ser ikke ut som vår trafikk hadde noe med å gjøre at siden gikk ned, men at en bug i serverkonfigurasjonen var grunnen.
evenv søn, 10/08/2008 - 21:54
@bep: Bra jobbet med scriptet for Windows. Ser det ikke var så mange som har gikk deg kred for det så langt, men det har nok noe å gjøre med publikummet... :)
espenhogbakk søn, 10/08/2008 - 23:09
Nå fungerte det ja :) Men noe jeg må aktivere for at sangtekstene skal vises på iPhonene? De vil ikke vises... Selv på sanger jeg vet er oppdaterte..
bep søn, 10/08/2008 - 23:32
@evenv: Takk. Jeg laga win-scriptet først og fremst for meg selv.
KDN man, 11/08/2008 - 02:41
espenc: for å se sangtexten tap en gang på midt på skjermen når sangen spilles av. Fungerte fint her, med untakk av noen låter som er på norsk (Stormblåst albummet til Dimmu Borgir, etc.)
svar man, 11/08/2008 - 04:10
Får fremdeles samme feil, er serveen nede igjen?
evenv man, 11/08/2008 - 06:03
Jeg har lagt opp en ny versjon av scriptet som skal tåle litt mer feil (takket være tips fra bep og flere) og gi litt mer informasjon underveis.
SindreM man, 11/08/2008 - 10:32
Jeg brukte MPFreaker, som ble beskrevet i første kommentar, og det funka veldig bra. Nå har jeg sangtekster, albumbilder, årstall osv på nesten ALLE sangene i iTunes.
Trial-versionen lar deg bare ta 3 og 3 sanger hver gang du starter programmet. Jeg fant det cracket på en annen side, og det funket smertefritt. Kontakt meg hvis du vil ha siden :):)
KDN tir, 12/08/2008 - 00:02
God ide... la oss spre piratvare!
(og for de som ikke skjønner det... dette er ironi og jeg synes de som ikke legger ut $20 eller 100kr for et program de skal bruke er ganske gniene!)
gd tir, 12/08/2008 - 00:08
Helt enig med KDN. Hvis vi nå har en gluping som kan mekke i hop noe som funker, og som vi har nytte av, så er ikke $20 avskrekkende. Og hvis flere sender litt penger så kanskje det kommer mer vettug senere som vi også vil ha nytte av
SindreM ons, 13/08/2008 - 10:50
Selvfølgelig. Hvis du derimot vil få prøvd programmet ordentlig først og/eller ikke f.eks har visa slik at det er enkelt å få betalt de $20, ser ikke jeg så mange andre utveier.
Men for all del, er programmet verdt pengene, betal for det.
And3rsG søn, 07/09/2008 - 17:27
"lyrics.rb:1: syntax error, unexpected $undefined, expecting '}'
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf330"
Får opp denne meldingen når jeg starter scriptet. Har xcode og alt. Noen som vet grunnen?
Lostchild ons, 10/09/2008 - 21:38
I fare for å bare ha browset veldig hurtig igjennom og ikke lest godt nok. Vil dette scriptet hente tekster til samtilige av mine iTunes låter?
overtoner tir, 30/06/2009 - 14:21
@ And3rsG: Får samme feil selv.
lyrics.rb:1: syntax error, unexpected $undefined, expecting '}'
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460
^
Ser noen hvor feilen ligger?