{"id":534,"date":"2012-04-04T12:32:11","date_gmt":"2012-04-04T11:32:11","guid":{"rendered":"http:\/\/www.phillips321.co.uk\/?p=534"},"modified":"2012-05-25T19:13:32","modified_gmt":"2012-05-25T18:13:32","slug":"quick-itunes-web-based-remote-control","status":"publish","type":"post","link":"https:\/\/www.phillips321.co.uk\/2012\/04\/04\/quick-itunes-web-based-remote-control\/","title":{"rendered":"Quick iTunes Web Based Remote Control"},"content":{"rendered":"<p>I use a macmini for music in my house and usually use the <a href=\"http:\/\/itunes.apple.com\/app\/remote\/id284417350?mt=8\" target=\"_blank\">Remote.app<\/a> to control it on either my iPhone or iPad. The problem is I&#8217;m often sat at my PC and think using a browser would be easier. I did have a little look for an app that I could install under nix but nothing turned up so I wrote my own.<\/p>\n<p><strong>Before you start please bear in mind that this app is totally vulnerable and it was never intended to be secure, quick and dirty is the way I like it!<\/strong><\/p>\n<p>First of all enable the webserver in OS X (this was tested on OS X ):<br \/>\n<a href=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/enable_websharing.png\"><img loading=\"lazy\" src=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/enable_websharing-150x150.png\" alt=\"\" title=\"enable_websharing\" width=\"150\" height=\"150\" class=\"aligncenter size-thumbnail wp-image-537\" \/><\/a><\/p>\n<p>Then you&#8217;ll need to change the config to enable php5, change the user apache runs as and then change the start page.<\/p>\n<div class=\"codecolorer-container bash vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">sudo<\/span> <span class=\"kw2\">nano<\/span> <span class=\"sy0\">\/<\/span>private<span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>apache2<span class=\"sy0\">\/<\/span>httpd.conf<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Uncomment the php5 line:<\/p>\n<div class=\"codecolorer-container bash vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\">LoadModule php5_module &nbsp; &nbsp; &nbsp; &nbsp;libexec<span class=\"sy0\">\/<\/span>apache2<span class=\"sy0\">\/<\/span>libphp5.so<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Change the user to replicate your shortname:<\/p>\n<div class=\"codecolorer-container bash vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"bash codecolorer\">User phillips321<br \/>\nGroup staff<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>And finally change the Directory index to point at index.php<\/p>\n<div class=\"codecolorer-container bash vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"sy0\">&lt;<\/span>IfModule dir_module<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; DirectoryIndex index.php index.html<br \/>\n<span class=\"sy0\">&lt;\/<\/span>IfModule<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Now restart the apache service<\/p>\n<div class=\"codecolorer-container bash vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">sudo<\/span> <span class=\"kw2\">apachectl restart<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Now copy the following code into a file named index.php under \/Library\/WebServer\/Documents and your good to go (<a href=\"\/downloads\/itunesremote.php.txt\" target=\"_blank\">code here if copy paste doesn&#8217;t work<\/a>)<\/p>\n<div class=\"codecolorer-container php vibrant\" style=\"overflow:auto;white-space:nowrap;width:100%;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"sy1\">&lt;?<\/span><br \/>\n<span class=\"re0\">$command<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$_GET<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'command'<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">switch<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$command<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;playpause&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to playpause'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;next&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to next track'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;prev&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to previous track'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>breal<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;louder&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to set sound volume to sound volume + 10'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;quieter&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to set sound volume to sound volume - 10'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;mute&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to set mute to true'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> <span class=\"st0\">&quot;unmute&quot;<\/span><span class=\"sy0\">:<\/span><a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to set mute to false'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><span class=\"kw1\">break<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"re0\">$status<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell application &quot;<\/span>iTunes<span class=\"st0\">&quot; to player state as string'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"re0\">$vol<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to sound volume as integer'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"re0\">$track<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to name of current track as string'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"re0\">$artist<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to artist of current track as string'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"re0\">$album<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;osascript -e 'tell app &quot;<\/span>iTunes<span class=\"st0\">&quot; to album of current track as string'&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"sy1\">?&gt;<\/span><br \/>\n&lt;html&gt;<br \/>\n&lt;head&gt;&lt;title&gt;iTunes Remote - <span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$status<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span>&lt;\/title&gt;<br \/>\n<span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$command<\/span> <span class=\"sy0\">!=<\/span> <span class=\"st0\">&quot;&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span> <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'&lt;meta http-equiv=&quot;refresh&quot; content=&quot;3;url=\/&quot;&gt;&lt;\/head&gt;'<\/span><span class=\"sy0\">;<\/span> <span class=\"br0\">&#125;<\/span> <span class=\"sy1\">?&gt;<\/span><br \/>\n&lt;body&gt;<br \/>\n&lt;center&gt;<br \/>\n&lt;form method=&quot;link&quot;&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;playpause&quot;&gt;&lt;br&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;prev&quot;&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;next&quot;&gt;&lt;br&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$artist<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span> - <span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$track<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span> - <span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$album<\/span><span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span>&lt;br&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;quieter&quot;&gt;<span class=\"sy1\">&lt;?<\/span> <span class=\"kw1\">echo<\/span> <span class=\"re0\">$vol<\/span> <span class=\"sy0\">;<\/span> <span class=\"sy1\">?&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;louder&quot;&gt;&lt;br&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;mute&quot;&gt;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;submit&quot; name=&quot;command&quot; value=&quot;unmute&quot;&gt;<br \/>\n&lt;\/form&gt;<br \/>\n&lt;\/center&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>If you&#8217;re extra special you can even add a favicon to the page.<a href=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/favicon.ico\"><img src=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/favicon.ico\" alt=\"\" title=\"favicon\" class=\"aligncenter size-full wp-image-539\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/itunesremote.png\"><img loading=\"lazy\" src=\"http:\/\/www.phillips321.co.uk\/wp-content\/uploads\/2012\/04\/itunesremote-150x150.png\" alt=\"\" title=\"itunesremote\" width=\"150\" height=\"150\" class=\"aligncenter size-thumbnail wp-image-540\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I use a macmini for music in my house and usually use the Remote.app to control it on either my iPhone or iPad. The problem is I&#8217;m often sat at my PC and think using a browser would be easier. I did have a little look for an app that I could install under nix [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[44,203,74,201,204,202],"_links":{"self":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/534"}],"collection":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/comments?post=534"}],"version-history":[{"count":8,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/534\/revisions"}],"predecessor-version":[{"id":708,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/posts\/534\/revisions\/708"}],"wp:attachment":[{"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/media?parent=534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/categories?post=534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.phillips321.co.uk\/wp-json\/wp\/v2\/tags?post=534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}