Windows から Mac の iTunes を操作する (2)

先日「Windows から Mac の iTunes を操作する」という記事を書いたが、もう少し素直に (?) 行うなら SSH でログインして次のように osascript で操作できるだろう。

$ osascript -e 'tell application "iTunes" to activate'                   # 起動
$ osascript -e 'tell application "iTunes" to play track 1 of playlist 1' # 再生
$ osascript -e 'tell application "iTunes" to stop'                       # 停止
$ osascript -e 'tell application "iTunes" to quit'                       # 終了

どこかでこういうネタを見たことあるなと思っていたが、Mac OS X Hacks の中に Perl を使った iTunes を制御する Hack が書いてあった。

かなり古いネタだが、Perl のモジュール Mac::iTunes を用いた iTunes を制御する CGI スクリプトが紹介されている。

#!/usr/bin/perl
# $Id$
use strict;

use CGI qw(:standard);
use Mac::iTunes;
use Text::Template;

my $Template = '/Users/brian/Dev/MacOSX/iTunes/html/iTunes.html';

=head1 NAME

iTunes.cgi - control iTunes from the web

=head1 SYNOPSIS

run as a CGI script

=head1 DESCRIPTION

This is only a proof-of-concept script.

=head1 AUTHOR

brian d foy, E<lt>bdfoy@cpan.orgE<gt>

=head1 COPYRIGHT

Copyright 2002 brian d foy, All rights reserved

=cut

my $controller = Mac::iTunes->new()->controller;

my $command      = param('command');
my $playlist     = param('playlist') || 'Library';
my $set_playlist = param('set_playlist');

if( $command )
    {
    my %Commands = map { $_, 1 } qw( play stop pause back_track);
    $controller->$command if exists $Commands{$command};
    }
elsif( $set_playlist )
    {
    $controller->_set_playlist( $set_playlist );
    $playlist = $set_playlist;
    }

my %var;

$var{base}      = 'http://10.0.1.2:8080/cgi-bin/iTunes.cgi';
$var{state}     = $controller->player_state;
$var{current}   = $controller->current_track_name;
$var{playlist}  = $playlist;
$var{playlists} = $controller->get_playlists;
$var{tracks}    = $controller->get_track_names_in_playlist( $playlist );

my $html = Text::Template::fill_in_file( $Template, HASH => \%var );

print header(), $html, "\n";

テンプレートファイル (Mac-iTunes-1.22/html) を利用してホームネットワーク内の Windows からアクセスしてみた。表示は次のような感じ。

itunes_windows_ie.png

あまり速くはないが、簡単な操作なら全く問題ない。この記事の導入部分には次のように書かれている。

I have been using Apple’s AirPort for a while … we want to be able to do any task from anywhere in the house. However, when it comes to playing music, we have a problem. Which computer is hooked up to the stereo? I do not like listening to music on the built-in speakers of my laptop, so I have another Mac hooked up to my stereo and a very large external hard drive filled with MP3s.

私はここしばらく Apple の AirMac (AirPort) を使っている。… 家の中のどんなところからでも、あらゆる作業ができたらいいと思うようになっている。だけど、音楽を再生するとなると、どのコンピューターがステレオにつながっているか、という問題がある。私はラップトップの備え付けスピーカーで音楽を聞きたいとは思わない。だから、別の Mac をステレオにつないでおいて、とても大きな外付けのハードディスクを MP3 でいっぱいにしておくのだ。

この O’Reilly 本の初版が 2003 年なので、この記事は少なくともそれ以前に書かれたものだろう。

今でこそ大容量 TB の HDD が安価で手に入るので、それを ALAC など Lossless の音楽データで贅沢に使い、ハードも安くなったので音楽再生用に Mac を購入してステレオにつないで、iPhone/iPad やラップトップでその Mac の iTunes を遠隔操作したい、と思うようになってきたが、10年くらい前から (TB の外付け HDD や Intel Mac や iPhone はないにしても) こうしたネタはあったのだなあ、とつくづく思ってしまった…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s