I would like to access a couple of different Mac OS X applications from preferably Ruby, but I would settle for PHP. The applications are Elgato's turbo.264 and Apple's iTunes. Both have Applescript Libraries defined that would allow me to do what I want to do from Applescript, but I don't want to do this in Applescript. If I can't do this in Ruby or PHP, perhaps I can do it in objective C / Cocoa and create some kind of wrapper that I could call from Ruby.
Is this even possible? It seems like if the methods are available in Applescript they should be available in other languages, I have just not been able to find anything.
Try RubyOSA (http://rubyosa.rubyforge.org) and then you can do this:
require 'rbosa'
itunes = OSA.app('iTunes')
track = itunes.current_track
p track # <OSA::Itunes::FileTrack:0x1495e20>
p track.name # "Over The Rainbow"
p track.artist # "Keith Jarrett"
p track.duration # 362.368988037109
p track.date_added.to_s # "2006-06-30"
p track.enabled? # true
# Play the selected track.
itunes.play
# Fade the volume.
100.times { |i| itunes.sound_volume = i; sleep 0.1 }
# Set iChat's status message to the current track.
OSA.app('iChat').status_message = "Playing: #{track.name}"
You can talk to any Mac OS X app that supports AppleScript
Tried appscript (http://appscript.sourceforge.net/rb-appscript/index.html)?
The example from the site:
Instead of AppleScript:
tell application "TextEdit"
get paragraph 1 of document "ReadMe"
end tell
You write in Ruby:
app('TextEdit').documents['ReadMe'].paragraphs[1].get
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With