<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tree Rat Fishing &#187; Apple</title>
	<atom:link href="http://www.treeratfishing.com/category/apple/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.treeratfishing.com</link>
	<description>Windows Administration and Development.  It's all about the tools and code.</description>
	<lastBuildDate>Tue, 09 Jun 2009 15:52:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Listening to music to combat Aids..</title>
		<link>http://www.treeratfishing.com/2006/10/13/listening-to-music-to-combat-aids/</link>
		<comments>http://www.treeratfishing.com/2006/10/13/listening-to-music-to-combat-aids/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 14:36:57 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/10/13/listening-to-music-to-combat-aids/</guid>
		<description><![CDATA[


:apple:  Apple has just released a new version of it&#8217;s iPod Nano&#8230;.&#160;&#160; the Nano(PRODUCT) RED.&#160;&#160; This unit is just a little bit different than the rest of it&#8217;s iPod brothers.&#160;&#160; When you buy this Red 4 Gig iPod from Apple, they will donate $10 to the Global Fund to fight AIDS in Africa.&#160;  [...]]]></description>
			<content:encoded><![CDATA[<p><div class="googleadsense"  style="display:block;float:right;padding:5px"><script type="text/javascript"><!--
google_ad_client = "pub-6900135860991679";
google_ad_width = 180;
google_ad_height = 150;
google_ad_format = "180x150_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_text = "000000";
google_color_url = "3D81EE";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>:apple:  <p><a href="http://www.apple.com/" class="liexternal">Apple</a> has just released a new version of it&#8217;s <a href="http://www.apple.com/ipodnano" class="liexternal">iPod Nano</a>&#8230;.&nbsp;&nbsp; the <a href="http://www.apple.com/ipodnano/red" class="liexternal">Nano(PRODUCT) RED</a>.&nbsp;&nbsp; This unit is just a little bit different than the rest of it&#8217;s iPod brothers.&nbsp;&nbsp; When you buy this Red 4 Gig iPod from Apple, they will donate $10 to the Global Fund to fight AIDS in Africa.&nbsp;</p> <div style="float: left"><a href="http://click.linksynergy.com/fs-bin/click?id=1Z/G4kt1eB8&#038;offerid=77305.10001707&#038;type=4&#038;subid=0" rel="nofollow" target="_blank" class="liimagelink"><img alt="Apple Store" border="0" src="http://afimages.apple.com/ipod/rednano_120x240.gif"></a><img border="0" width="1" height="1" src="http://ad.linksynergy.com/fs-bin/show?id=1Z/G4kt1eB8&#038;bids=77305.10001707&#038;type=4&#038;subid=0"></div> <h5>The Apple iPod nano (PRODUCT) RED is 100% iPod nano</h5> <p>Sleek, lightweight, and just $199, the 4GB(2) iPod nano (PRODUCT) RED delivers everything you’d expect from the world’s best-selling digital music player. A brilliant, 1.5-inch color display. Up to 24 hours of battery life(3). Seamless iTunes integration that lets you import your CDs and shop for songs, podcasts, and audiobooks on the iTunes Store, then sync them in minutes. All in a durable aluminum enclosure that tells the world you’ve chosen to join (RED).</p> <p>&nbsp;For further information about the Global Fund and (RED), visit <a href="http://www.joinred.com/" onclick="window.open(this.href,null,'height=720,width=840,status=yes,scrollbars=yes,location=yes'); return false;" class="liexternal"><u><font color="#0000ff">www.JOINRED.com</font></u></a>.</p> <p>&nbsp;</p> <p><strong>Technorati Tags:</strong> <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a> &#8211; <a href="http://technorati.com/tag/ITMS" rel="tag" class="liexternal">ITMS</a> &#8211; <a href="http://technorati.com/tag/iPod%20Nano" rel="tag" class="liexternal">iPod Nano</a> &#8211; <a href="http://technorati.com/tag/Red%20iPod%20Nano" rel="tag" class="liexternal">Red iPod Nano</a> &#8211; <a href="http://technorati.com/tag/AIDS" rel="tag" class="liexternal">AIDS</a> &#8211; <a href="http://technorati.com/tag/JoinRed" rel="tag" class="liexternal">JoinRed</a> &#8211; <a href="http://technorati.com/tag/Global%20Fund" rel="tag" class="liexternal">Global Fund</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/10/13/listening-to-music-to-combat-aids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking a peek at MyTunesRSS</title>
		<link>http://www.treeratfishing.com/2006/09/04/taking-a-peek-at-mytunesrss/</link>
		<comments>http://www.treeratfishing.com/2006/09/04/taking-a-peek-at-mytunesrss/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 14:39:28 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/09/04/taking-a-peek-at-mytunesrss/</guid>
		<description><![CDATA[


:apple:Have you ever wanted to play your iTunes music (or videos) and podcasts from other machines in the house (or at&#160;work) that don&#8217;t support iTunes Music?&#160; I was looking for a good way to play my music library on my Series 2 TiVo.&#160; Yes I know there is a TiVo Desktop application, but I haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<div class="googleadsense"  style="display:block;float:right;padding:5px"><script type="text/javascript"><!--
google_ad_client = "pub-6900135860991679";
google_ad_width = 180;
google_ad_height = 150;
google_ad_format = "180x150_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_text = "000000";
google_color_url = "3D81EE";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>:apple:<p>Have you ever wanted to play your iTunes music (or videos) and podcasts from other machines in the house (or at&nbsp;work) that don&#8217;t support iTunes Music?&nbsp; I was looking for a good way to play my music library on my Series 2 TiVo.&nbsp; Yes I know there is a TiVo Desktop application, but I haven&#8217;t been to happy with the music sharing part of the desktop.&nbsp; I came across a great&nbsp;product &nbsp;<a href="http://www.codewave.de/products/mytunesrss/" class="liexternal">MyTunesRSS</a>&nbsp;by a company called <a href="http://www.codewave.de/" class="liexternal">codewave software</a>.&nbsp;&nbsp; </p> <p>MyTunesRSS can browse and search through all your music through a web interface.&nbsp; You can create playlists that can be played on different devices (like my TiVo or the Sony PSP).&nbsp;&nbsp; One of the great features is that since it uses the iTunes database, you don&#8217;t have to manage multiple versions of playlists.&nbsp;&nbsp; Using the interface you can create new RSS feeds and M3U playlists from any album, tracks, or artist or playlist.&nbsp;&nbsp; MyTunesRSS even gives provides a link you can use to download&nbsp;a song, album. or playlist&nbsp;in Zip format.</p> <p>The initial management of the application is done through a GUI that allows you to configure what port the application will listen on.&nbsp;&nbsp; The web application is password protected (password required) so only those who know the password will get to have the pleasure of accessing your music library.</p> <p>This program is written in Java and is available on Windows as well as Mac. </p> <p>Get more information and download&nbsp;&nbsp;<a href="http://www.codewave.de/products/mytunesrss/" class="liexternal">MyTunesRSS</a>&nbsp;at <a href="http://www.codewave.de/" class="liexternal">codewave software</a>.</p> <p>Technorati Tags: <a href="http://technorati.com/tag/MyTunesRSS" rel="tag" class="liexternal">MyTunesRSS</a>, <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/RSS" rel="tag" class="liexternal">RSS</a>, <a href="http://technorati.com/tag/M3U" rel="tag" class="liexternal">M3U</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/09/04/taking-a-peek-at-mytunesrss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting iTunes with VBScript</title>
		<link>http://www.treeratfishing.com/2006/08/31/scripting-itunes-with-vbscript/</link>
		<comments>http://www.treeratfishing.com/2006/08/31/scripting-itunes-with-vbscript/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 23:20:51 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/31/scripting-itunes-with-vbscript/</guid>
		<description><![CDATA[:apple:A new section of TRF has been setup that will include all the iTunes scripts that have been shared on TRF.&#160;&#160; I am not out of ideas for new scripts and I already have plans for some improvements to the existing scripts.&#160;&#160;&#160; Current iTunes Scripts are:  Remove duplicatesRemove Orphaned TracksUpdate Library Information You can [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#square-->:apple:<p>A new section of <a href="http://www.treeratfishing.com/" class="liinternal">TRF</a> has been setup that will include all the <a href="http://www.treeratfishing.com/projects/itunes-scripts/" class="liinternal">iTunes scripts</a> that have been shared on <a href="http://www.treeratfishing.com/" class="liinternal">TRF</a>.&nbsp;&nbsp; I am not out of ideas for new scripts and I already have plans for some improvements to the existing scripts.&nbsp;&nbsp;&nbsp; Current iTunes Scripts are:</p> <ul> <li><a href="http://www.treeratfishing.com/projects/itunes-scripts/" class="liinternal"><font color="#0000ff">Remove duplicates</font></a></li><li><a href="http://www.treeratfishing.com/projects/itunes-scripts/" class="liinternal"><font color="#0000ff">Remove Orphaned Tracks</font></a></li><li><a href="http://www.treeratfishing.com/projects/itunes-scripts/" class="liinternal"><font color="#0000ff">Update Library Information</font></a></li></ul> <p>You can reach the page by following this <a href="http://www.treeratfishing.com/projects/itunes-scripts/" class="liinternal">link</a>.</p> <p>New additions will be posted as they are released.&nbsp;&nbsp;</p> <p>Technorati Tags: <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/iTunes+Scripting" rel="tag" class="liexternal">iTunes Scripting</a>, <a href="http://technorati.com/tag/VBScript" rel="tag" class="liexternal">VBScript</a>, <a href="http://technorati.com/tag/iTunes+SDK" rel="tag" class="liexternal">iTunes SDK</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/31/scripting-itunes-with-vbscript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using the iTunes SDK to Update Library Info</title>
		<link>http://www.treeratfishing.com/2006/08/30/using-the-itunes-sdk-to-update-library-info/</link>
		<comments>http://www.treeratfishing.com/2006/08/30/using-the-itunes-sdk-to-update-library-info/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 04:08:35 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/30/using-the-itunes-sdk-to-update-library-info/</guid>
		<description><![CDATA[:apple:This is a continuing look at what we can accomplish&#160;with the &#160;iTunes SDK.&#160;&#160;&#160;If you have missed the previous articles in this series please&#160;take a look at&#160;&#160;An introduction to Apple’s iTunes SDK, Removing Duplicate Songs, and Removing Orphaned Songs.&#160;  The script I am going to introduce tonight is a simple one.&#160;&#160; A friend of mine [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#square-->:apple:<p>This is a continuing look at what we can accomplish&nbsp;with the &nbsp;<a href="http://www.apple.com/itunes/" class="liexternal">iTunes</a> <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">SDK</a>.&nbsp;&nbsp;&nbsp;If you have missed the previous articles in this series please&nbsp;take a look at&nbsp;&nbsp;<a href="http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/" class="liinternal">An introduction to Apple’s iTunes SDK</a>,<a href="http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/" class="liinternal"> Removing Duplicate Songs</a>, and <a href="http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/" class="liinternal">Removing Orphaned Songs</a>.&nbsp; </p> <p>The script I am going to introduce tonight is a simple one.&nbsp;&nbsp; A friend of mine was interested in a script that would update the information in the library from the tags in the file.&nbsp;&nbsp; He used a separate program to update the MP3 information in his library and needed a way to tell iTunes to update it&#8217;s info.&nbsp;&nbsp;</p> <p>In this script I really only have one goal, update the song info with what is in the file.</p> <p>Again.. the first part of the script will look very familiar if you have seen any of the scripts from the previous articles on <font color="#2277dd">Removing Duplicate Songs </font>and <a href="http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/" class="liinternal">Removing Orphaned Songs</a>.&nbsp;</p> <pre><span style="color: #0000ff">set</span> objApp = <span style="color: #0000ff">CreateObject</span>("<span style="color: #8b0000">iTunes.Application</span>")
<span style="color: #0000ff">set</span> objLibrary = objApp.LibraryPlaylist
<span style="color: #0000ff">set</span> colTracks = objLibrary.Tracks
</pre>
<p>We next enter a loop through all the tracks and execute the command to update the library information from the file.&nbsp; </p>
<pre><span style="color: #0000ff">For</span> <span style="color: #0000ff">Each</span> objTrack <span style="color: #0000ff">in</span> colTracks
	objTrack.UpdateInfoFromFile()
<span style="color: #0000ff">next</span></pre>
<p>After the loop through all the tracks is finished, we destroy our objects and free up memory.</p>
<pre><span style="color: #0000ff">set</span> objApp = <span style="color: #0000ff">nothing</span>
<span style="color: #0000ff">set</span> objLibrary = <span style="color: #0000ff">nothing</span>
<span style="color: #0000ff">set</span> colTracks = <span style="color: #0000ff">nothing</span></pre>
<p>All that is left is to let the user know that the process is done..</p>
<pre>WScript.Echo("<span style="color: #8b0000">Finished updating library</span>")
</pre>
<p>Please leave me a comment if you found this script useful or have any questions.</p>
<p>You can download the commented script using the following link:</p>
<p><a href="http://www.treeratfishing.com/wp-content/uploads/2006/08/updatefromfile.zip" class="liinternal">UpdateFromFile.zip</a></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/iTMS" rel="tag" class="liexternal">iTMS</a>, <a href="http://technorati.com/tag/iTunes+Scripts" rel="tag" class="liexternal">iTunes Scripts</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/30/using-the-itunes-sdk-to-update-library-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the iTunes SDK to Remove Orphaned Songs</title>
		<link>http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/</link>
		<comments>http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/#comments</comments>
		<pubDate>Tue, 29 Aug 2006 18:39:54 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/</guid>
		<description><![CDATA[:apple:I looked at the iTunes SDK in &#8220;Scripting iTunes.. A look at Apple’s iTunes SDK&#8221; and I have shared with you a script I have wrote to eliminate duplicate song entries in your iTunes library in &#8220;Using the iTunes SDK to Remove Duplicate Songs&#8220;.&#160;&#160; I have used the feedback to help improve this script and [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#square-->:apple:<p>I looked at the <a href="http://www.apple.com/itunes/" class="liexternal">iTunes</a> <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">SDK</a> in &#8220;<a href="http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/" title="Permanent Link: Scripting iTunes.. A look at Apple&rsquo;s iTunes SDK" rel="bookmark" class="liinternal">Scripting iTunes.. A look at Apple’s iTunes SDK</a>&#8221; and I have shared with you a <a href="http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/" class="liinternal">script</a> I have wrote to eliminate duplicate song entries in your iTunes library in &#8220;<a href="http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/" title="Permanent Link: Using the iTunes SDK to Remove Duplicate Songs." rel="bookmark" class="liinternal">Using the iTunes SDK to Remove Duplicate Songs</a>&#8220;.&nbsp;&nbsp; I have used the feedback to help improve this script and am working on a way to remove the orphaned (or dead) song entries using VBScript but I wanted to provide this as a stand alone script as well as incorporate it in the remove duplicate script.</p><p>My goals for this script are:</p> <ul> <li>Use VBScript as a scripting language (the SDK contains this code in Javascript, so I needed to rewrite it).</li> <li>Find song entries that do not have a corresponding file and remove the entries from the iTunes library.</li> <li>Provide the code as a standalone script as well as being able to use the code in the remove duplicates script.<br /></li></ul>As stated in the <a href="http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/" class="liinternal">previous article</a> I do have experience in Visual basic and it is just a preference in this project.&nbsp; A person could have just as easily wrote this in JavaScript they chose to.&nbsp;&nbsp; <br /><br />Let&#8217;s take a look at the script&#8230;.<br /><br />The first part should look familiar if you are familiar with the <a href="http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/" class="liinternal">remove duplicates script</a>.&nbsp;&nbsp; We are creating our initial iTunes objects so we can communicate with the iTunes application<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; set objApp = CreateObject(&#8221;iTunes.Application&#8221;)<br />&nbsp;&nbsp;&nbsp; set objLibrary = objApp.LibraryPlaylist<br />&nbsp;&nbsp;&nbsp; set colTracks = objLibrary.Tracks</font><br /></i><br />Next we set an empty value to keep track of the number of songs that were orphaned and deleted from the library.<br />&nbsp;&nbsp;&nbsp; <font color="#006600"><i>OrphanTracks = 0</i></font><br /><br />Now we loop through all the tracks in the library and fine the ones that have an empty location.&nbsp;&nbsp; If an empty location is found, it is removed from the library and the &#8220;OrphanTracks&#8221; counter in increased by one.<br /><font color="#006600"><i>&nbsp;&nbsp;&nbsp; For Each objTrack in colTracks<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if objTrack.Kind = ITTrackKindFile then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if objTrack.Location = &#8220;&#8221; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; objTrack.Delete()<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; OrphanTracks = OrphanTracks + 1<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; next</i></font><br /><br />After we go through the list of songs, the script then lets us know now many songs were removed from the library.<br /><font color="#006600">&nbsp;&nbsp;&nbsp;<em> if OrphanTracks &gt; 0 then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if OrphanTracks = 1 then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.Echo(&#8221;Removed 1&nbsp;orphaned track.&#8221;)<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.Echo(&#8221;Removed &#8221; + OrphanTracks + &#8221; orphaned tracks.&#8221;)<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.Echo(&#8221;No orphan tracks were found.&#8221;)<br />&nbsp;&nbsp;&nbsp; end if</em></font><br /><br />If you are familiar with VBScript, the script is pretty straight forward.&nbsp; No files are deleted from hard drive, just removed from the library.&nbsp; <br /><br />Please leave me a comment if you found this script useful or have any questions.<br /><br />You can download the commented script using the following link:<br /><br /><a href="http://www.treeratfishing.com/wp-content/uploads/2006/08/removeorphantracks.zip" class="liinternal">removeorphantracks.zip</a><br /><br /><br />Technorati Tags: <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/Orphaned%20songs" rel="tag" class="liexternal">Orphaned songs</a>, <a href="http://technorati.com/tag/ITMS" rel="tag" class="liexternal">ITMS</a>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/29/using-the-itunes-sdk-to-remove-orphaned-songs/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>iPod Nano Bluetooth Adapter Released</title>
		<link>http://www.treeratfishing.com/2006/08/28/ipod-nano-bluetooth-adapter-released/</link>
		<comments>http://www.treeratfishing.com/2006/08/28/ipod-nano-bluetooth-adapter-released/#comments</comments>
		<pubDate>Mon, 28 Aug 2006 21:53:14 +0000</pubDate>
		<dc:creator>Digg</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/28/ipod-nano-bluetooth-adapter-released/</guid>
		<description><![CDATA[:apple:Anycom has just released the iPod Nano Bluetooth Adapter. It simply plugs in the bottom of your nano and sends a wireless bluetooth signal to your headphones. The adapter is powered by your nano, so no need to to worry about batteries. The range is around 10 meters, or 30 feet.. and it claims to [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#square-->:apple:<p>Anycom has just released the iPod Nano Bluetooth Adapter. It simply plugs in the bottom of your nano and sends a wireless bluetooth signal to your headphones. The adapter is powered by your nano, so no need to to worry about batteries. The range is around 10 meters, or 30 feet.. and it claims to provide high-quality audio.</p>
<p><a href="http://pcexposure.com/2006/08/27/ipod-nano-bluetooth-adapter/" class="liexternal">read more</a> | <a href="http://digg.com/apple/iPod_Nano_Bluetooth_Adapter_Released" class="liexternal">digg story</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/28/ipod-nano-bluetooth-adapter-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using the iTunes SDK to Remove Duplicate Songs.</title>
		<link>http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/</link>
		<comments>http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/#comments</comments>
		<pubDate>Fri, 18 Aug 2006 19:19:47 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/</guid>
		<description><![CDATA[:apple:I previously introduced you to the iTunes for Windows SDK in a previous article.&#160; As I mentioned in the previous article,&#160; I had just received my iPod Nano and came to the realization that my iTunes library was out of control.&#160;&#160; I discovered the iTunes SDK and the sample scripts it included.&#160; I was especially [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#square-->:apple:<p>I previously introduced you to the iTunes for Windows SDK in a previous <a href="http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/" class="liinternal">article</a>.&nbsp; As I mentioned in the previous <a href="http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/" class="liinternal">article</a>,&nbsp; I had just received my iPod Nano and came to the realization that my iTunes library was out of control.&nbsp;&nbsp; I discovered the iTunes SDK and the sample scripts it included.&nbsp; I was especially pleased with the RemoveDeadTracks script that deleted all the orphaned song entries that were left after I deleted the songs outside of the iTunes interface.&nbsp; I still had a problem with duplicate tracks, and decided it was the perfect oportunity to use the SDK to automate the deletion of these duplicate tracks.&nbsp; After spending a little time getting acquainted with the SDK I broke out my favorite script editor (windows notepad) and started to get to work.</p><p>With this script my goal was to:</p><ul><li>Delete duplicate tracks using the assumption that if the song title and the album was the same it was a duplicate</li><li>Keep the song that had been recorded at the higher bit rate or was the largest file size (bigger is better&#8230; right?).</li><li>Delete the file from the file system as well as the iTunes library.<br /></li></ul>Since I do have some experience with Visual Basic, I decided to use VBScript for this project.&nbsp;&nbsp; VBScript is just a personal preference, you could just as easily have done this in JavaScript if you wanted to.&nbsp;&nbsp; I may rewrite it in JavaScript if I get enough comments requesting it.<br /><br />Let&#8217;s take a look at the working portion of the script (to download the complete script use this <a href="http://www.treeratfishing.com/wp-content/uploads/2006/08/remove_dup_itunes_tracks.zip" class="liinternal">link</a>). <br /><br />First we create the initial objects we are going to use in our script.&nbsp;&nbsp; In this section we create a File System Object and the iTunes objects.<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; Set fso = CreateObject(&#8221;Scripting.FileSystemObject&#8221;)<br />&nbsp;&nbsp;&nbsp; Set objApp = CreateObject(&#8221;iTunes.Application&#8221;)<br />&nbsp;&nbsp;&nbsp; Set objLibrary = objApp.LibraryPlaylist<br />&nbsp;&nbsp;&nbsp; Set colTracks = objLibrary.Tracks</font><br /></i><br />We then loop through all the tracks..<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; For Each objTrack in colTracks</font></i><br /><br />Do a search for songs with the same name<br />&nbsp;&nbsp;&nbsp; <i><font color="#006600">Set colTracksSrch = _<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; objLibrary.Search(objTrack.Name, ITPlaylistSearchFieldSongNames)</font></i><br /><br />We check to see if more than one song by the same name is found in the search and loop through all the search results and see if the Song Names and Albums are the same. (checking for the duplicate files)<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; if colTracksSrch.count &gt; 1 then</font><br /></i><font color="#006600"><i>&nbsp;&nbsp;&nbsp; For Each objTrackSrch in colTracksSrch<br />&nbsp;&nbsp;&nbsp; if (objTrack.Name = objTrackSrch.Name) and _<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (objTrack.Album = objTrackSrch.Album) then</i><br /></font><br />If we find a duplicate using our criteria from above, we want check to see if the quality or size of the original is the less than the file we are comparing it to from our search results.&nbsp; If so, delete the file using the File System Object, remove it from the iTunes library and go to the next song.<i><font color="#006600"><br />&nbsp;&nbsp;&nbsp; if (objTrack.SampleRate &lt; objTrackSrch.SampleRate) OR _<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (objTrack.Size &lt; objTrackSrch.Size) then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if fso.fileexists(objTrack.Location)then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; fso.deletefile objTrack.Location, True<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; objtrack.delete<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Exit For<br />&nbsp;&nbsp;&nbsp; end if</font></i><br /><br />Our next test is to see if we truly have a duplicate with all the same atributes with the exception of the file name.&nbsp;&nbsp; We then procede to delete all the duplicate files found in the search, keeping the original file.<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; if (objTrack.SampleRate = objTrackSrch.SampleRate) and _<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (objTrack.Size = objTrackSrch.Size) AND _<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; (objTrack.Location &lt;&gt; objTrackSrch.Location) then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if fso.fileexists(objTrackSrch.Location) then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fso.deletefile objTrackSrch.Location, True<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; objtrackSrch.delete<br />&nbsp;&nbsp;&nbsp; end if</font></i><br /><br /><font color="#006600"><font color="#330033">The working part of the script is done, we now return to our loop and look at the next song in the list and repeat.</font><i><br />&nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; next<br />&nbsp;&nbsp;&nbsp; end if<br />&nbsp;&nbsp;&nbsp; set objTrackSrch = nothing<br />&nbsp;&nbsp;&nbsp; Set colTracksSrch = nothing<br />&nbsp;&nbsp;&nbsp; Next</i></font><br /><br />At this point everything is done.&nbsp;&nbsp; We notify the user the process is done and destroy the objects we used, releasing memory back to the Operating System.<br /><i><font color="#006600">&nbsp;&nbsp;&nbsp; msgbox (&#8221;Done Deleting Duplicates&#8221;)<br />&nbsp;&nbsp;&nbsp; &#8216;Destroy the objects <br />&nbsp;&nbsp;&nbsp; Set objApp = nothing<br />&nbsp;&nbsp;&nbsp; set objTrack = nothing<br />&nbsp;&nbsp;&nbsp; Set objLibrary = nothing<br />&nbsp;&nbsp;&nbsp; Set colTracks = nothing<br />&nbsp;&nbsp;&nbsp; set fso = nothing</font></i><br /><br />Scripting iTunes could never be so easy.&nbsp; You can download the script <a href="http://www.treeratfishing.com/wp-content/uploads/2006/08/remove_dup_itunes_tracks.zip" class="liinternal">here</a>.&nbsp; If you find this script helpful or have a suggestion to enhance the script, please leave me a comment.&nbsp;&nbsp; <br /><br /><a href="http://www.treeratfishing.com/wp-content/uploads/2006/08/remove_dup_itunes_tracks.zip" class="liinternal">remove_dup_itunes_tracks.zip</a><br /><br /><font color="#ff0000">Please be aware that this script deletes files without prompting you.&nbsp;<br />If you are uneasy about running this script, backup your<br />music before proceeding.</font><br /><br />Update 8/27/2006..&nbsp;&nbsp; Version 1.1 released.&nbsp;&nbsp; Includes logging.<br /><br />Technorati Tags: <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/Scripting" rel="tag" class="liexternal">Scripting</a>, <a href="http://technorati.com/tag/VBScript" rel="tag" class="liexternal">VBScript</a>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/18/using-the-itunes-sdk-to-remove-duplicate-songs/feed/</wfw:commentRss>
		<slash:comments>81</slash:comments>
		</item>
		<item>
		<title>iTunes Music Store creates Free TV Show Page</title>
		<link>http://www.treeratfishing.com/2006/08/15/itunes-music-store-creates-free-tv-show-page/</link>
		<comments>http://www.treeratfishing.com/2006/08/15/itunes-music-store-creates-free-tv-show-page/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 17:27:43 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/15/itunes-music-store-creates-free-tv-show-page/</guid>
		<description><![CDATA[:apple:Apple has always had free videos in the iTunes Music Store.   But until now it has always been hard to find the golden treasure at the end of the rainbow.   As of today the iTMS has created a page just for this free content.    There are currently only [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#button-->:apple:<p><a href="http://www.apple.com" class="liexternal">Apple</a> has always had free videos in the <a href="http://www.apple.com/itues" class="liexternal">iTunes</a> Music Store.   But until now it has always been hard to find the golden treasure at the end of the rainbow.   As of today the iTMS has created a <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewRoom?fcId=178698089&#038;pageType=playlists&#038;id=37" class="liexternal">page</a> just for this free content.    There are currently only 12 TV show episodes to choose from.   Head on over there to get the pilot episodes of Psyc, Three Moons over Milford, and Who Wants to be a Superhero?

Technorati Tags: <a href="http://technorati.com/tag/iTMS" rel="tag" class="liexternal">iTMS</a>, <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/15/itunes-music-store-creates-free-tv-show-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting iTunes.. A look at Apple&#8217;s iTunes SDK</title>
		<link>http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/</link>
		<comments>http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/#comments</comments>
		<pubDate>Fri, 11 Aug 2006 19:19:19 +0000</pubDate>
		<dc:creator>jeff.story</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/</guid>
		<description><![CDATA[:apple:I came across the iTunes SDK while trying to find a way to automate the deletion of ghost song entries out of my iTunes library.   Over time the iTunes library on my machine had become unusable, I had moved or deleted a bunch of of my music files with (not in iTunes) and [...]]]></description>
			<content:encoded><![CDATA[<!--adsense#button-->:apple:<p>I came across the <a href="http://www.apple.com/itunes/" class="liexternal">iTunes</a> SDK while trying to find a way to automate the deletion of ghost song entries out of my iTunes library.   Over time the iTunes library on my machine had become unusable, I had moved or deleted a bunch of of my music files with (not in iTunes) and thier entries remained in the iTunes library.   I had always used iTunes for playing back music and had dealt with the inconvience of the ghost entries.  With the arival of a iPod Nano at my doorstep, I found these entries to be truly annoying and determined that they needed to go.   Sure, I could have just deleted the XML database files and gone through the process re-adding the folders to the library but that would have eliminated my play lists, play counts, last played, and ratings.

So here enters the iTunes Software Development Kit (<a href="http://en.wikipedia.org/wiki/SDK" rel="nofollow" class="liwikipedia">SDK</a>) from Apple.  This SDK shows you how to start using the Component Object Model (or <a href="http://en.wikipedia.org/wiki/Component_Object_Model" rel="nofollow" class="liwikipedia">COM</a>) interface developed in the iTunes application.   This COM interface allows you to use external tools to manipuate the actions of iTunes.   Some people choose to use full blown developement environments like Visual Studio but since the <a href="http://en.wikipedia.org/wiki/Windows_Scripting_Host" rel="nofollow" class="liwikipedia">Windows scripting host</a> is installed by default on Windows XP machines we can use the notepad application.  By using <a href="http://en.wikipedia.org/wiki/Javascript">javascript</a> and <a href="http://en.wikipedia.org/wiki/Vbscript" rel="nofollow" class="liwikipedia">VBScript</a> we create a text file that are interpreted by the Windows scripting Host (WSH) and executed with no need to compile or go through a setup program. I am not going dive into the intricacies of what a SDK is and how to use them in this article, for that I suggest you look to <a href="http://www.google.com/" class="liexternal">Google</a>.

You can download Apple&#8217;s iTunes SDK for Windows from Apples Developer&#8217;s site <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">here</a>.  It is a small zip file, only 267KB in size.  Please review the <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">licensing agreement</a> before you agree and download the <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">SDK</a>.  I need to mention that while my experiences have been positive and I can&#8217;t be held responsible for negative end user experiences.

The ZIP files contains the following files:
<ul>
	<li><em>iTunesCOM.chm</em> &#8211; <span style="font-family: Helvetica">Compressed HTML help file containing the documentation on the iTunes COM interface</span><span style="font-size: 12pt; font-family: Helvetica">.</span></li>
	<li>
<p class="MsoNormal"><span style="font-family: Helvetica"><em>iTunesCOMInterface.h</em> &#8211; COM header file used when developing in C++.
</span></li>
	<li>
<p class="MsoNormal"><span style="font-family: Helvetica"><em>iTunesCOMInterface_i.c</em> &#8211; Also a COM header file used when developing in C++.</span></p>
</li>
	<li>
<p class="MsoNormal"><span style="font-family: Helvetica"> <em>samples/</em></span><em>RemoveDeadTracks.js</em> -<span style="font-family: Helvetica"> Iterates over your library and removes any tracks that can no longer be</span><span style="font-family: Helvetica"> found on disk.</span></p>
</li>
	<li>
<p class="MsoNormal"><span style="font-family: Helvetica" /><em><span style="font-family: Helvetica">samples/</span>RemoveUserPlaylists.js</em> -<span style="font-family: Helvetica"> Deletes
all non-smart user playlists your library.</span></li>
	<li><em>samples/CreateAlbumPlaylists.js</em> -<span style="font-family: Helvetica"> Iterates over all tracks in your library, creates a new playlist for </span><span style="font-family: Helvetica">each album, and adds the tracks for that album to the playlist.</span></li>
</ul>
To execute one of the sample scripts make sure iTunes is running, browse to the directory that contails the file and double click the file.  It will get processed by the WSH and execute the script.

The <em>RemoveDeadTracks</em> script was exactly what I wanted.   It did run for a long time (my library was pretty big and messed up).   When it was done..  it prompted me with a message box letting me know how many songs it removed from the library.    All was good in the world.

The <em>RemoveUserPlaylists</em> is most useful if you want to clean up all the random playlists you have created.  Think of it as a hatchet that gets rid of all your playlists.  I used this on a test machine and it did exactly as promised.  I was tempted to run this on my primary machine, but was just too lazy to do so. When it is done running a message box will prompt you with the number of playlists deleted.

The <em>CreateAlbumPlaylists</em>  is another useful script.  For a long time I wanted to create playlists of all my albums, but became a tedious task.   As long as all your music is tagged properly it works wonderfully.   If they aren&#8217;t tagged, you will end up with one big record.   When it is done running a message box will prompt you with the number of playlists created.

Many software companies offer SDKs for their programs.   Many of them come at a cost.  It is great that Apple releases this to the public for free.   This SDK definitely has peeked my interest in iTunes interface development.   I think I am going to start working on  a script that will remove the duplicate files out of my database while maintaining album integrity.   Look for it in a future posting&#8230;&#8230;

Download Apple&#8217;s iTunes SDK for Windows from Apples Developer&#8217;s site <a href="http://developer.apple.com/sdk/itunescomsdk.html" class="liexternal">here</a>.
Technorati Tags: <a href="http://technorati.com/tag/Apple" rel="tag" class="liexternal">Apple</a>, <a href="http://technorati.com/tag/iTunes" rel="tag" class="liexternal">iTunes</a>, <a href="http://technorati.com/tag/Scripting" rel="tag" class="liexternal">Scripting</a>, <a href="http://technorati.com/tag/SDK" rel="tag" class="liexternal">SDK</a>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/11/scripting-itunes-a-look-at-apples-itunes-sdk/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Apple WWDC 2006 Rumor Roundup</title>
		<link>http://www.treeratfishing.com/2006/08/05/apple-wwdc-2006-rumor-roundup/</link>
		<comments>http://www.treeratfishing.com/2006/08/05/apple-wwdc-2006-rumor-roundup/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 03:01:10 +0000</pubDate>
		<dc:creator>Digg</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.treeratfishing.com/2006/08/05/apple-wwdc-2006-rumor-roundup/</guid>
		<description><![CDATA[:apple:With the 2006 Worldwide Developers Conference (WWDC) quickly approaching, the Mac rumor scene has been buzzing with rumors and reports. As usual, MacRumors provides this Rumor Roundup as a summary of major rumors circulating around the Mac Web before the big event. 
read more &#124; digg story
]]></description>
			<content:encoded><![CDATA[<!--adsense#button-->:apple:<p>With the 2006 Worldwide Developers Conference (WWDC) quickly approaching, the Mac rumor scene has been buzzing with rumors and reports. As usual, MacRumors provides this Rumor Roundup as a summary of major rumors circulating around the Mac Web before the big event. </p>
<p><a href="http://www.macrumors.com/pages/2006/08/20060805162310.shtml" class="liexternal">read more</a> | <a href="http://digg.com/apple/Apple_WWDC_2006_Rumor_Roundup" class="liexternal">digg story</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.treeratfishing.com/2006/08/05/apple-wwdc-2006-rumor-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
