<?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>Doug&#039;s AppleScripts for iTunes</title>
	<atom:link href="http://dougscripts.com/itunes/feed/" rel="self" type="application/rss+xml" />
	<link>http://dougscripts.com</link>
	<description>AppleScripts for iTunes</description>
	<lastBuildDate>Sun, 13 May 2012 13:40:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='dougscripts.com' port='80' path='/itunes/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Project: Gather Partially Played Tracks</title>
		<link>http://dougscripts.com/itunes/2012/05/project-gather-partially-played-tracks/</link>
		<comments></comments>
		<pubDate>Sun, 13 May 2012 13:40:54 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1558</guid>
		<description><![CDATA[I got an email from Correspondent Sherwood Botsford asking if there was any way to round up his partially played audiobooks. What he wanted to do was maintain a playlist of recently added audiobook tracks that he hadn&#8217;t finished listening to and sync it to his iPhone. He&#8217;d gotten the recently added stuff okay by [...]]]></description>
			<content:encoded><![CDATA[<p>I got an email from Correspondent Sherwood Botsford asking if there was any way to round up his partially played audiobooks. What he wanted to do was maintain a playlist of recently added audiobook tracks that he hadn&#8217;t finished listening to and sync it to his iPhone. He&#8217;d gotten the recently added stuff okay by using a Smart Playlist. But Smart Playlists don&#8217;t include any criteria for detecting how far along a track has been played, and Last Skipped may not necessarily have been set if a track was simply stopped rather than skipped.</p>
<p>If a track&#8217;s &#8220;Remember playback position&#8221; setting in its Get Info&#8217;s Options tab has been checkmarked&#8212;presumably, your audiobooks are &#8220;bookmarkable&#8221; by default or you have set the &#8220;remember&#8221; option manually&#8212;a track&#8217;s <strong>bookmark</strong> property will contain the number of seconds the track had been played before it was stopped. Thus, if any tracks have a <strong>bookmark</strong> value greater than zero then they&#8217;ve been partially played. </p>
<p>So here&#8217;s a script that will gather all those partially played tracks into a new playlist named &#8220;Partially Played&#8221; and <em>that</em> playlist can be the source for the Smart Playlist:</p>
<p><span id="more-1558"></span>
<div class="upmproto">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana"><b>property</b> <span style="color: #269900">nameOfPlaylist</span> : &#8220;Partially Played&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana; min-height: 15.0px"></p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana"><b>tell</b> <span style="color: #4300ff"><i>application</i></span> &#8220;iTunes&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">opt</span> <b>to</b> <span style="color: #6800c5">button returned</span> <b>of</b> (<span style="color: #2c00c5"><b>display dialog</b></span> &#172;</p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span>&#8220;Find partially played tracks in:&#8221; <span style="color: #2c00c5">buttons</span> &#172;</p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span>{&#8221;Cancel&#8221;, &#8220;Entire Library&#8221;, &#8220;Books&#8221;} <span style="color: #2c00c5">default button</span> 3)</p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana; min-height: 15.0px"><span style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>if</b> <span style="color: #269900">opt</span> <b>is</b> &#8220;books&#8221; <b>then</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">targetLibrary</span> <b>to</b> (<b>some</b> <span style="color: #4300ff"><i>playlist</i></span> <b>whose</b> <span style="color: #9500e4">special kind</span> <b>is</b> <span style="color: #690097">Books</span>)</p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>else</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana; color: #4300ff"><span style="color: #000000"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> </span><span style="color: #269900">targetLibrary</span><span style="color: #000000"> <b>to</b> </span><i>library playlist</i><span style="color: #000000"> 1</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>end</b> <b>if</b></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana; min-height: 15.0px"><span style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">thePlaylist</span> <b>to</b> <b>some</b> <span style="color: #4300ff"><i>playlist</i></span> <b>whose</b> <span style="color: #9500e4">name</span> <b>is</b> <span style="color: #269900">nameOfPlaylist</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>on</b> <b>error</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana; color: #4300ff"><span style="color: #000000"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> </span><span style="color: #269900">thePlaylist</span><span style="color: #000000"> <b>to</b> (</span><b>make</b><span style="color: #000000"> </span><i>playlist</i><span style="color: #000000"> </span>with properties<span style="color: #000000"> {</span><span style="color: #9500e4">name</span><span style="color: #000000">:</span><span style="color: #269900">nameOfPlaylist</span><span style="color: #000000">})</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>end</b> <b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana; min-height: 15.0px"><span style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="color: #4300ff"><b>delete</b></span> <b>every</b> <span style="color: #4300ff"><i>track</i></span> <b>of</b> <span style="color: #269900">thePlaylist</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>end</b> <b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana; min-height: 15.0px"><span style="white-space:pre">	</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="color: #4300ff"><b>duplicate</b></span> (<b>every</b> <span style="color: #4300ff"><i>track</i></span> <b>of</b> <span style="color: #269900">targetLibrary</span> <b>whose</b> <span style="color: #9500e4">bookmark</span> &gt; 0) <span style="color: #4300ff">to</span> <span style="color: #269900">thePlaylist</span></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana; color: #269900"><span style="color: #000000"><span style="white-space:pre">	</span></span><span style="color: #4300ff"><b>reveal</b></span><span style="color: #000000"> </span>thePlaylist</p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana"><b>end</b> <b>tell</b></p>
<p><a href="applescript://com.apple.scripteditor?action=new&#038;script=property%20nameOfPlaylist%20%3A%20%22Partially%20Played%22%0D%0Dtell%20application%20%22iTunes%22%0D%09set%20opt%20to%20button%20returned%20of%20(display%20dialog%20%C2%AC%0D%09%09%22Find%20partially%20played%20tracks%20in%3A%22%20buttons%20%C2%AC%0D%09%09%7B%22Cancel%22%2C%20%22Entire%20Library%22%2C%20%22Books%22%7D%20default%20button%203)%0D%09%0D%09if%20opt%20is%20%22books%22%20then%0D%09%09set%20targetLibrary%20to%20(some%20playlist%20whose%20special%20kind%20is%20Books)%0D%09else%0D%09%09set%20targetLibrary%20to%20library%20playlist%201%0D%09end%20if%0D%09%0D%09try%0D%09%09set%20thePlaylist%20to%20some%20playlist%20whose%20name%20is%20nameOfPlaylist%0D%09on%20error%0D%09%09set%20thePlaylist%20to%20(make%20playlist%20with%20properties%20%7Bname%3AnameOfPlaylist%7D)%0D%09end%20try%0D%09%0D%09try%0D%09%09delete%20every%20track%20of%20thePlaylist%0D%09end%20try%0D%09%0D%09duplicate%20(every%20track%20of%20targetLibrary%20whose%20bookmark%20%3E%200)%20to%20thePlaylist%0D%09reveal%20thePlaylist%0Dend%20tell" title="Click to open in AppleScript Editor. Works via most modern Mac browsers."><img src="http://dougscripts.com/itunes/pix/clickscriptsmall.jpg" alt="" /></a>
</div>
<p>It will take a few seconds to run on a very large library. So I&#8217;ve provided an option to look at either all the tracks in the library or just those in the &#8220;Books&#8221; library and set the <strong>targetLibrary</strong> variable to this choice. Then, it will <strong>try</strong> to set the variable <strong>thePlaylist</strong> to a playlist named &#8220;Partially Played&#8221;. If it errors because the &#8220;Partially Played&#8221; playlist doesn&#8217;t exist yet it will set <strong>thePlaylist</strong> to a new &#8220;Partially Played&#8221; playlist. Then it will <strong>try</strong> to remove all the tracks in it (in order to update a previously rounded-up batch). Finally it will find all the tracks in the <strong>targetLibrary</strong> with a <strong>bookmark</strong> greater than 0 and copy them to the &#8220;Partially Played&#8221; playlist.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>OS X 10.7.4 Quarantine Issue?</title>
		<link>http://dougscripts.com/itunes/2012/05/os-x-10-7-4-quarantine-issue/</link>
		<comments></comments>
		<pubDate>Thu, 10 May 2012 13:02:35 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Lion]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1554</guid>
		<description><![CDATA[Two users have reported that after updating to Lion 10.7.4, downloaded script applets from this site would bounce in the Dock when launched and would not open. It turns out that the users had previously disabled the quarantine system. This normally alerts you when a new application or document has been downloaded from the internet [...]]]></description>
			<content:encoded><![CDATA[<p>Two users have reported that after updating to Lion 10.7.4, downloaded script applets from this site would bounce in the Dock when launched and would not open. It turns out that the users had previously disabled the quarantine system. This normally alerts you when a new application or document has been downloaded from the internet as you are about to open it for the first time. For some reason this setting was not picked up in 10.7.4&#8212;or something&#8212;and logs an error like this to Console.app:</p>
<pre>
posix_spawn("path/to/the/app",...): Operation not permitted
</pre>
<p>Topher Kessler has an <a href="http://reviews.cnet.com/8301-13727_7-57406599-263/tackling-a-newly-installed-application-not-opening-in-os-x">article at cnet</a> (published before this 10.7.4 issue arose) that explains how the quarantine setting works and how you can reset it in order to get the downloaded apps running correctly.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>UPDATED: This Tag That Tag v3.1</title>
		<link>http://dougscripts.com/itunes/2012/05/updated-this-tag-that-tag-v3-1/</link>
		<comments></comments>
		<pubDate>Sat, 05 May 2012 15:41:53 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Cocoa-AppleScript]]></category>
		<category><![CDATA[Managing Track Info]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1550</guid>
		<description><![CDATA[This Tag That Tag will assist with swapping, copying, and appending data between two user-chosen tags in selected tracks or tracks in the selected playlist:Swap &#8211; swap data between tags, ex: ARTISTCOMPOSERCopy &#8211; copy data from one to another tag, ex: ARTIST->COMPOSER ARTISTAppend &#8211; append data from one tag to the end of another, ex: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougscripts.com/itunes/scripts/ss.php?sp=thistagthattag" title="Applet assists with swapping, copying, appending data between track tags">This Tag That Tag</a> will assist with swapping, copying, and appending data between two user-chosen tags in selected tracks or tracks in the selected playlist:<br/><br/><strong>Swap</strong> &#8211; swap data between tags, ex: ARTIST<->COMPOSER<br/><strong>Copy</strong> &#8211; copy data from one to another tag, ex: ARTIST-><del>COMPOSER</del> ARTIST<br/><strong>Append</strong> &#8211; append data from one tag to the end of another, ex: ARTIST->COMPOSER &#8211; <em>ARTIST</em><br/><strong>Prepend</strong> &#8211; prepend data from one tag to the beginning of another, ex: ARTIST-><em>ARTIST</em> &#8211; COMPOSER<br/><br/>The latter three actions also provide an option to delete the info from the first tag after the copy.</p>
<p><img src="http://dougscripts.com/itunes/pix/thistagthattag.png" /></p>
<p>This latest version allows numerical tag data to be copied (for example, the Year tag&#8217;s data can be copied to the Comments tag).</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>UPDATED: Batch Export Playlists v1.1</title>
		<link>http://dougscripts.com/itunes/2012/05/updated-batch-export-playlists-v1-1/</link>
		<comments></comments>
		<pubDate>Sat, 05 May 2012 14:17:39 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Cocoa-AppleScript]]></category>
		<category><![CDATA[Exporting Info]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1548</guid>
		<description><![CDATA[Batch Export Playlists will export each selected plain, Smart, and Genius playlist as individual XML or M3U files to a user selected directory. Such files can be imported into iTunes again later.
This latest version correctly handles forward slashes in playlist names and has other minor code finesses.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougscripts.com/itunes/scripts/ss.php?sp=batchexportplaylists" title="Export selected playlists as individual XML or M3U files">Batch Export Playlists</a> will export each selected plain, Smart, and Genius playlist as individual XML or M3U files to a user selected directory. Such files can be imported into iTunes again later.</p>
<p>This latest version correctly handles forward slashes in playlist names and has other minor code finesses.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>The iTunes Guy Macworld Podcast</title>
		<link>http://dougscripts.com/itunes/2012/05/the-itunes-guy-macworld-podcast/</link>
		<comments></comments>
		<pubDate>Wed, 02 May 2012 22:22:37 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Macworld]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1546</guid>
		<description><![CDATA[Kirk McElhearn is Macworld&#8217;s &#8220;iTunes Guy&#8221; and he recently chatted with Senior Editor Chris Breen in a Macworld Podcast. Subjects include a variety of iTunes issues and a couple of scripts Kirk uses in his regular iTunes workflow.
]]></description>
			<content:encoded><![CDATA[<p>Kirk McElhearn is Macworld&#8217;s &#8220;iTunes Guy&#8221; and he recently chatted with Senior Editor Chris Breen in a <a href="http://www.macworld.com/article/1166635/asking_the_itunes_guy.html">Macworld Podcast</a>. Subjects include a variety of iTunes issues and a couple of scripts Kirk uses in his regular iTunes workflow.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>TrackSift v1.2 Now Available via the Mac App Store</title>
		<link>http://dougscripts.com/itunes/2012/04/tracksift-v1-2-now-available-via-the-mac-app-store/</link>
		<comments></comments>
		<pubDate>Tue, 03 Apr 2012 23:11:25 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Mac App Store]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1542</guid>
		<description><![CDATA[TrackSift v1.2 is now available. TrackSift brings together nine fun and useful Tools for iTunes in one attractive, simple to install and easy to use app:

Delete &#8220;dead&#8221; tracks, delete empty playlists, and delete unwanted Genre names
Find songs without album art, without lyrics, and not in playlists
Create &#8220;One-Hit Wonder&#8221;, &#8220;Two-Fer&#8221;, and &#8220;Three-Fer&#8221; playlists

New in version 1.2:

New [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougscripts.com/apps/tracksiftapp.php">TrackSift</a> v1.2 is now available. <b>TrackSift</b> brings together nine fun and useful Tools for <b>iTunes</b> in one attractive, simple to install and easy to use app:</p>
<ul>
<li>Delete <b>&#8220;dead&#8221;</b> tracks, delete<b> empty playlists</b>, and delete unwanted Genre names</li>
<li>Find songs <b>without album art</b>, without <b>lyrics</b>, and not in playlists</li>
<li>Create &#8220;One-Hit Wonder&#8221;, &#8220;Two-Fer&#8221;, and &#8220;Three-Fer&#8221; playlists</li>
</ul>
<p>New in version 1.2:</p>
<ul>
<li>New De-Genre tool replaces Podcasts tool</li>
<li>Fixes issues with large libraries (50K+ tracks) </li>
<li>Fixes issues with preliminary library scan</li>
<li>Fixes issues with iTunes Match tracks</li>
<li>Speeds-up no artwork tool</li>
<li>Improvements to Delete Empty Playlists tool</li>
<li>Improvements to Not In Playlist tool</li>
<li>Improvements to One-Hit Wonders tool</li>
<li>Minor GUI enhancements</li>
</ul>
<p>Nine tools, one app&#8212;just $1.99 on the <a href="http://itunes.apple.com/us/app/tracksift/id435371243?mt=12">Mac App Store</a>.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>iTunes 10.6.1 Released</title>
		<link>http://dougscripts.com/itunes/2012/03/itunes-10-6-1-released/</link>
		<comments></comments>
		<pubDate>Thu, 29 Mar 2012 01:08:05 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[iTunes 10]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1540</guid>
		<description><![CDATA[Apple has released iTunes 10.6.1. It features a variety of bug fixes including a TV Show sorting glitch when browsing the library on Apple TV, unexpected quits during video plays, changing Grid view, or photo syncing to devices.
]]></description>
			<content:encoded><![CDATA[<p>Apple has released <a href="http://www.apple.com/itunes/download/">iTunes 10.6.1</a>. It features a variety of bug fixes including a TV Show sorting glitch when browsing the library on Apple TV, unexpected quits during video plays, changing Grid view, or photo syncing to devices.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>iTunes 10.6 Available</title>
		<link>http://dougscripts.com/itunes/2012/03/itunes-10-6-available/</link>
		<comments></comments>
		<pubDate>Wed, 07 Mar 2012 21:45:19 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[iTunes 10]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1537</guid>
		<description><![CDATA[Apple has released iTunes 10.6 which features some iTunes Match fixes and accomodation for 1080p video to go along with the new AppleTV.
]]></description>
			<content:encoded><![CDATA[<p>Apple has released iTunes 10.6 which features some iTunes Match fixes and accomodation for 1080p video to go along with the new AppleTV.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>UPDATED: Save Album Art as folder.jpg v2.2</title>
		<link>http://dougscripts.com/itunes/2012/02/updated-save-album-art-as-folder-jpg-v2-2/</link>
		<comments></comments>
		<pubDate>Wed, 29 Feb 2012 14:19:51 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Cocoa-AppleScript]]></category>
		<category><![CDATA[Managing Artwork]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1535</guid>
		<description><![CDATA[Save Album Art as folder.jpg v2.2 will export the artwork of the selected tracks or tracks in the selected playlist as a JPEG image file named folder.jpg to the folder which contains each selected track&#8217;s file&#8211;presumably the track&#8217;s Album folder.

Many third-party music players and systems (Sonos, for example) may look for a &#8220;folder.jpg&#8221; here to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougscripts.com/itunes/scripts/ss.php?sp=savealbumartjpeg" title="Export album artwork as folder.jpg to Album folder">Save Album Art as folder.jpg</a> v2.2 will export the artwork of the <strong>selected tracks</strong> or tracks in the <strong>selected playlist</strong> as a JPEG image file named <em>folder.jpg</em> to the folder which contains each selected track&#8217;s file&#8211;presumably the track&#8217;s Album folder.</p>
<p><img src="http://dougscripts.com/itunes/pix/savealbumartjpeg.png" /></p>
<p>Many third-party music players and systems (<a href="https://sonos.custhelp.com/cgi-bin/sonos.cfg/php/enduser/std_adp.php?p_faqid=59">Sonos</a>, for example) may look for a &#8220;folder.jpg&#8221; here to use as display artwork.</p>
<p>This latest version is basically a maintenance update and is now a stay-open app that will float above iTunes while running.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
		<item>
		<title>Custom Playlist Column Views, Sorta</title>
		<link>http://dougscripts.com/itunes/2012/02/custom-playlist-column-views-sorta/</link>
		<comments></comments>
		<pubDate>Mon, 27 Feb 2012 14:26:08 +0000</pubDate>
		<dc:creator>dougscripts</dc:creator>
				<category><![CDATA[Controlling iTunes]]></category>
		<category><![CDATA[Managing Playlists]]></category>

		<guid isPermaLink="false">http://dougscripts.com/itunes/?p=1533</guid>
		<description><![CDATA[Here&#8217;s something I&#8217;m often asked which Correspondent Rob Falk put succinctly: &#8220;Is there a way to clone a playlist view&#8230;other than the Library [using Assimilate View Options]? I frequently need to create a playlist that has a specific set of columns, that are not the same as the library, and was looking for a way [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s something I&#8217;m often asked which Correspondent Rob Falk put succinctly: <em>&#8220;Is there a way to clone a playlist view&#8230;other than the Library [using <a href="http://dougscripts.com/itunes/scripts/ss.php?sp=assimilateviewoptions" title="Recreate a playlist such that its visible columns mirror the Music library">Assimilate View Options</a>]? I frequently need to create a playlist that has a specific set of columns, that are not the same as the library, and was looking for a way to automate that.&#8221;</em></p>
<p>There sorta kinda is.</p>
<p>My first thought was to use AppleScript to just <strong>duplicate</strong> an existing playlist that already had the requisite view settings. (The <strong>duplicate</strong> command is typically used to copy a track from one playlist to another.) Unfortunately, when iTunes&#8217; AppleScript <strong>duplicate</strong> command is used to copy a playlist it&#8212;bafflingly&#8212;creates a new untitled and empty playlist using the properties and views of the Music library playlist. Same as just creating a new playlist. That doesn&#8217;t seem right, does it? You&#8217;d think&#8212;well, <em>I</em> thought anyway&#8212;that using <strong>duplicate</strong> to copy a playlist would behave the same as the playlist contextual menu command &#8220;Duplicate&#8221; (control-click or right-click on the name of the playlist):</p>
<p><img src="http://dougscripts.com/itunes/pix/playlistcontextualmenu.png" /></p>
<p>So, my next thought was&#8230;just use &#8220;Duplicate&#8221;. The playlist will be perfectly duplicated, column views and all, and selected in the Source list. Now you&#8217;ll have a new playlist named the same as the original with a &#8220;1&#8243; at the end and which is populated with the original&#8217;s tracks (if it had any). You could create a bunch of playlists with columns set the various ways you like and then &#8220;Duplicate&#8221; them when you required one. Just rename the new duplicated playlist and delete any tracks. And that part <em>can</em> be automated.</p>
<p>The workflow, then, is to &#8220;Duplicate&#8221; a playlist manually with the contextual menu command and then run this script right afterwards:</p>
<p><span id="more-1533"></span></p>
<div class="upmproto">
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana"><b>tell</b> <span style="color: #4300ff"><i>application</i></span> &#8220;iTunes&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">duplicatedPlaylist</span> <b>to</b> (<b>get</b> <span style="color: #9500e4">view</span> <b>of</b> <b>front</b> <span style="color: #4300ff"><i>window</i></span>)</p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">opt</span> <b>to</b> (<span style="color: #2c00c5"><b>display dialog</b></span> &#8220;Enter a name for this playlist:&#8221; <span style="color: #2c00c5">default answer</span> &#8220;&#8221;)</p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #269900">newName</span> <b>to</b> <span style="color: #6800c5">text returned</span> <b>of</b> <span style="color: #269900">opt</span></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>if</b> <span style="color: #269900">newName</span> <b>is</b> &#8220;&#8221; <b>then</b> <b>error</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana; color: #269900"><span style="color: #000000"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>tell</b> </span>duplicatedPlaylist</p>
<p style="margin: 0.0px 0.0px 0.0px 166.5px; text-indent: -166.5px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 208.1px; text-indent: -208.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="color: #4300ff"><b>delete</b></span> <b>every</b> <span style="color: #4300ff"><i>track</i></span></p>
<p style="margin: 0.0px 0.0px 0.0px 166.5px; text-indent: -166.5px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>end</b> <b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 166.5px; text-indent: -166.5px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>set</b> <span style="color: #9500e4">name</span> <b>to</b> <span style="color: #269900">newName</span></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>end</b> <b>tell</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><span style="color: #4300ff"><b>reveal</b></span> (<b>some</b> <span style="color: #4300ff"><i>playlist</i></span> <b>whose</b> <span style="color: #9500e4">special kind</span> <b>is</b> <span style="color: #690097">Music</span>)</p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana; color: #269900"><span style="color: #000000"><span style="white-space:pre">	</span><span style="white-space:pre">	</span></span><span style="color: #4300ff"><b>reveal</b></span><span style="color: #000000"> </span>duplicatedPlaylist</p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>on</b> <b>error</b></p>
<p style="margin: 0.0px 0.0px 0.0px 124.8px; text-indent: -124.9px; font: 12.0px Verdana"><span style="white-space:pre">	</span><span style="white-space:pre">	</span><b>return</b></p>
<p style="margin: 0.0px 0.0px 0.0px 83.2px; text-indent: -83.2px; font: 12.0px Verdana"><span style="white-space:pre">	</span><b>end</b> <b>try</b></p>
<p style="margin: 0.0px 0.0px 0.0px 41.6px; text-indent: -41.6px; font: 12.0px Verdana"><b>end</b> <b>tell</b></p>
<p><a href="applescript://com.apple.scripteditor?action=new&#038;script=tell%20application%20%22iTunes%22%0D%09try%0D%09%09set%20duplicatedPlaylist%20to%20(get%20view%20of%20front%20window)%0D%09%09set%20opt%20to%20(display%20dialog%20%22Enter%20a%20name%20for%20this%20playlist%3A%22%20default%20answer%20%22%22)%0D%09%09set%20newName%20to%20text%20returned%20of%20opt%0D%09%09if%20newName%20is%20%22%22%20then%20error%0D%09%09tell%20duplicatedPlaylist%0D%09%09%09try%0D%09%09%09%09delete%20every%20track%0D%09%09%09end%20try%0D%09%09%09set%20name%20to%20newName%0D%09%09end%20tell%0D%09%09reveal%20(some%20playlist%20whose%20special%20kind%20is%20Music)%0D%09%09reveal%20duplicatedPlaylist%0D%09on%20error%0D%09%09return%0D%09end%20try%0Dend%20tell" title="Click to open in AppleScript Editor. Works via most modern Mac browsers."><img src="http://dougscripts.com/itunes/pix/clickscriptsmall.jpg" alt="" /></a>
</div>
<p>The <strong>duplicatedPlaylist</strong> variable will be <strong>set</strong> to the currently selected playlist&#8212;as long as you haven&#8217;t clicked on something else this will be the one just created with &#8220;Duplicate&#8221;. The script then asks for a new name for the playlist, deletes any tracks from it, gives it the new name, and selects the re-named playlist. I&#8217;ve had the script <strong>reveal</strong> the Music playlist first so the Source list will scroll to the renamed playlist properly when <strong>reveal</strong> is subsequently called on it.</p>
<p>This routine works much slicker when you assign this script a <a href="http://dougscripts.com/itunes/itinfo/shortcutkeys.php">keyboard shortcut</a>. Then it&#8217;s only a matter of firing &#8220;Duplicate&#8221; with the cursor and then hitting the shortcut to fire the script. Bing-bang.</p>
<p>(I was too lazy to try and figure out if &#8220;Duplicate&#8221; can be scripted using GUI Scripting. If anyone can tell me about that I&#8217;d be obliged.)</p>
<p>I&#8217;m hoping that a future release of iTunes will allow the <strong>duplicate</strong> command to behave the same as &#8220;Duplicate&#8221;.</p>
<hr/><small><a href="http://dougscripts.com/itunes/dougsupdated.rss" title="Take me to your reader">30 Most Recent RSS Feed</a> | <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Script Stats Page</a> by <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Name&op=y">Name</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Most Recent&op=y">Most Recent</a>, <a href="http://dougscripts.com/itunes/scripts/scriptcount.php?sortBy=Download Count&op=y">Download Count</a></small>]]></content:encoded>
			</item>
	</channel>
</rss>

