Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Listen to podcasts on Mac at faster or slower speed Apps
Following a discussion on Twitter a few weeks ago, Jeff Porten shared with me an AppleScript he uses to listen to podcasts on his Mac at faster or slower speed. The script lets you choose a playlist, then choose whether you want to listen at 75% or 150% of the normal speed. It then opens the podcasts in QuickTime Player and plays them.

It's a nifty script, and if you like to speed up podcasts on your Mac, as you may do on an iOS device, this makes it easier to do so. It's a bit more sophisticated than the script in this hint from 2006, as it can keep going through a playlist.
(*
iTunes FastPodcast 1.2, by Jeff Porten
jporten@gmail.com

Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)
http://creativecommons.org/licenses/by-nc/3.0/
*)


tell application "iTunes"
	
	set setupNeeded to false
	
	--fetch prior selected playlist name and playback rate
	try
		set targetPlaylistName to do shell script "defaults read com.jeffporten.fastpodcast SelectedPlaylist"
		set playbackRate to do shell script "defaults read com.jeffporten.fastpodcast PlaybackRate"
	on error -- probably first run of script
		set setupNeeded to true
	end try
	
	if setupNeeded is false then -- confirm using last settings
		set userReply to button returned of (display dialog "Play playlist \"" & targetPlaylistName & "\" at " & playbackRate & " speed?" buttons {"Cancel", "Change...", "OK"} default button "OK")
		if userReply is "Change..." then set setupNeeded to true
	end if
	
	if setupNeeded is true then -- set up new settings
		set listPlaylists to the name of every playlist
		set targetPlaylistName to (choose from list listPlaylists with prompt "Which playlist to play?" without multiple selections allowed and empty selection allowed) as text
		set selectedSpeed to button returned of (display dialog "Playback rate to use?" & return & return & "(½X and 2X correspond to iPod playback speeds, actually 75% and 150%)" buttons {"Custom", "½X", "2X"})
		if selectedSpeed is "2X" then
			set playbackRate to 1.5
		else if selectedSpeed is "½X" then
			set playbackRate to 0.75
		else
			set playbackRate to text returned of (display dialog "Enter a playback speed. (1.0 is normal speed, 2.0 is true double-speed, 0.5 is true half-speed.)" default answer "1.0")
		end if
	end if
	
	--store settings in a non-AppleScripty way
	do shell script "defaults write com.jeffporten.fastpodcast SelectedPlaylist " & (quoted form of targetPlaylistName)
	do shell script "defaults write com.jeffporten.fastpodcast PlaybackRate " & (quoted form of (playbackRate as text))
	
	--actually do the playback in QuickTime Player
	set targetPlaylist to playlist targetPlaylistName
	set trackList to tracks of targetPlaylist
	repeat with i from 1 to count trackList
		set thisTrack to item i of trackList
		set podcastName to album of thisTrack
		set thisLoc to location of thisTrack
		set thisDuration to duration of thisTrack
		
		tell application "QuickTime Player"
			activate
			open thisLoc
			play document 1
			
			set rate of document 1 to playbackRate
			
			--if some podcasts should never be rate-altered, delete last line and use this instead
			--if (podcastName does not contain "Onion") then set rate of document 1 to 1.5
			
			--or for multiple podcasts, add as many of these as you like before "then set rate":
			--and (podcastName does not contain "someOtherPodcast") 
			
			
			set nextTrack to false
			set j to 0
			
			--if the QTP player is manually ended by dragging the slider to the end, automatically starts next podcast
			--if QTP player is closed, script errors out of existence
			--otherwise, when playback is finished, script will close the QuickTime Player document and open the next track in the playlist
			repeat until nextTrack is true
				delay 2
				if current time of document 1 ≥ duration of document 1 then set nextTrack to true
			end repeat
			
			close document 1
		end tell
		
		--mark the track as played
		set played count of thisTrack to (played count of thisTrack) + 1
		
		--I use this AppleScript line to set the rating of the podcast track to one star, which I delete later from a smart playlist
		--set rating of thisTrack to 20
	end repeat
end tell
  Post a comment  •  Comments (0)  
  • Currently 3.10 / 5
  You rated: 1 / 5 (21 votes cast)
 
[3,101 views] Email Article To a Friend View Printable Version
Dismiss banner notifications with a swipe on OS X System 10.8
If you are using Mountain Lion, you've probably seen the banner style notifications and wondered how to get them away quickly. Yet there is no close button.

The solution is simple: If you use a trackpad, use two fingers to swipe them away to the right; on the Magic Mouse, it's one finger swipe to the right. Of course, hover over it with the cursor and then swipe.

[kirkmc adds: Well, I wasn't sure whether to post this. The banners go away on their own after five seconds, so you'd need to be mighty impatient to want to go to the trouble of manually removing them. But there may be cases where you do want to do this. I'll let you discuss this in the comments below.]
  Post a comment  •  Comments (10)  
  • Currently 3.15 / 5
  You rated: 4 / 5 (20 votes cast)
 
[8,384 views] Email Article To a Friend View Printable Version
Edit Share menu System 10.8
Mountain Lion's new Share menu is handy, but not smart enough not to propose you services you haven’t signed for in the “Mail, Contacts & Calendar” Preferences pane. Here’s a way to remove from it the items you don’t use.

Copy the file /System/Library/PrivateFrameworks/ShareKit.framework/Versions/A/Resources/SHKServicesOrder.plist to a folder where you have write permissions. Duplicate it and keep a copy of the original in case you want to revert to the standard Share menu, as we’ll have to overwrite the system version.

Open the file with any text editor and erase the lines corresponding to services you don’t use. I’ve erased Twitter, Facebook, and all the video services. Save the file and copy it back to the folder mentioned above. When asked if you want to overwrite the file, click on Yes and enter an admin password. You may have to log out and back in for the changes to take effect.

[kirkmc adds: Note that this change may not survive a system update. I agree that this should be user-configurable, and basing it on accounts defined in the Mail, Contacts & Calendar preference pane - whose more appropriate name would be Accounts - would make sense. It would also be great if there were a way to add accounts that aren't hard-coded into the system. Could this be a challenge to hinters to try and figure out how to do that?]
  Post a comment  •  Comments (0)  
  • Currently 3.65 / 5
  You rated: 5 / 5 (20 votes cast)
 
[5,064 views] Email Article To a Friend View Printable Version
Toggle Web Sharing with an AppleScript System 10.8

As mentioned in this hint, Mountain Lion removed the setting in the Sharing preference pane to turn Web Sharing on and off, even though Apache Web Server is still installed by default. That hint also mentions a third-party preference pane that you can install to toggle Web Sharing in Mountain Lion.

Here's another solution in the form of an AppleScript. If you copy the script to a .scpt file in ~/Library/Scripts, you can conveniently toggle Web Sharing by selecting the script in the Scripts menu.

Here's the AppleScript:

display dialog "Enter your password:" with title "AppleScript" ¬
	default answer "" with hidden answer
set pw to text returned of result

set resultMsg to do shell script "
	listResult=`launchctl list | grep org.apache.httpd`; 
	if [[ $listResult ]]; then 
		apachectl stop; 
		echo 'Apache Web Server stopped.'; 
	else 
		apachectl start; 
		echo 'Apache Web Server started.'; 
	fi" password pw with administrator privileges

tell application "Finder"
	set notifier to POSIX file "/Applications/Terminal-Notifier.app"
	if exists notifier then
		do shell script POSIX path of notifier ¬
			& "/Contents/MacOS/terminal-notifier -message '" ¬
			& resultMsg & "'"
	else
		display alert resultMsg
	end if
end tell

The script uses the free Terminal-Notifier app by Eloy Durán, if installed, to notify you that Apache Web Server has been started or stopped. If you have the app installed somewhere other than /Applications, be sure to edit the app's path in the script.

Note that the state of Web Sharing is persistent across reboots, whether you use this method to control it or the aforementioned preference pane.

  Post a comment  •  Comments (1)  
  • Currently 3.00 / 5
  You rated: 2 / 5 (20 votes cast)
 
[3,215 views] Email Article To a Friend View Printable Version
Send Growl notifications to Notification Center System 10.8
If you use Growl, you might find it a bit overkill to have some notifications come through Growl and others to Notification Center. Mountain Growl pipes notifications from Growl to Notification Center, but there is one caveat: all these notifications will have the Growl icon, and not the icon of the application that sent the notification.

This is just a stop-gap, as Growl 2, to be released soon, will support Notification Center directly, but in the meantime, you might find this a useful solution to group all notifications in one place.
  Post a comment  •  Comments (8)  
  • Currently 3.32 / 5
  You rated: 4 / 5 (19 votes cast)
 
[3,571 views] Email Article To a Friend View Printable Version
Get notifications for iTunes track changes System 10.8
If you like getting those little Notification Center alerts when things happen, here's a way to get even more. iTunification gets information from iTunes when tracks change, and funnels this into Notification Center, so you can get a banner to see what the next track is.

This certainly isn't new, as GrowlTunes has been able to do this for a while (if you use Growl), and I get notifications from CoverSutra, an iTunes controller. On top of that, I'd be willing to bet pretty much anything that the next major update to iTunes has Notification Center support. But in the meantime, if you want simple banners to tell you what's playing, this is a good solution, and it's free.
  Post a comment  •  Comments (7)  
  • Currently 3.40 / 5
  You rated: 1 / 5 (20 votes cast)
 
[4,321 views] Email Article To a Friend View Printable Version
Assign a keyboard shortcut to Launchpad System 10.7
If you use Launchpad, you can assign a keyboard shortcut to open it. Go to the Keyboard preference pane in System Preferences, then Keyboard Shortcuts, then Launchpad & Dock. Select Show Launchpad, press Enter or Return, and enter your shortcut.

[kirkmc adds: It's worth mentioning this because, oddly, there is no default shortcut for Launchpad. (This is the case for both Lion and Mountain Lion.) While we're at it, here are some keyboard controls you can use when in Launchpad. Command-right/left-arrow moves to a different page, and Command-down-arrow goes into a folder.]
  Post a comment  •  Comments (8)  
  • Currently 2.72 / 5
  You rated: 3 / 5 (18 votes cast)
 
[49,441 views] Email Article To a Friend View Printable Version
Hide apps on Purchases list in App Store app Apps
Up until Mountain Lion, you could hover over the Install or Download button in the App Store Purchases list and an x would appear. Clicking this x would hide the app, removing it from the purchases list.

Now, in Mountain Lion, you need to right-click or Control-click and choose Hide Purchase from the one-item contextual menu that displays.

To unhide an item, click on the Account link on the main page of the App Store, then go to iTunes in the Cloud > View Hidden Purchases.
  Post a comment  •  Comments (1)  
  • Currently 4.00 / 5
  You rated: 5 / 5 (4 votes cast)
 
[3,417 views] Email Article To a Friend View Printable Version
An alternative to the old Exposé "All Applications" hot corner Apps
I recently upgraded to Lion and miss Exposé's "All Windows" Hot Corner feature, which showed clearly all windows of the current Space. With Mission Control, you have to delicately hover over tiny slices of windows and keep hitting the space bar to switch between windows or, using a hot corner with "Application Windows," select among all windows of a single app from all desktops (plus windows that aren't even open)! I'm a power multi-tasker and I use desktops to differentiate between projects that all use the same apps, which means that Mission Control is virtually useless to me. Thus, I have put together an alternative that is far from Exposé's previous functionality, but a wee step closer, and for me, a huge boost in productivity.

This hint uses two third-party preference panes (Witch and Corner Click) and an AppleScript.

First, make sure that the hot corner you want to use for Witch is not set in System Preferences.

Install Witch and open it in System Preferences.
  • Enable using the checkbox at the top.
  • Under Triggers, make sure the shortcut for All applications non-minimized / Forward is set as option-tab.
  • Under Behavior, show list right away so the hot-corner response is immediate, and un-check Releasing all modifier keys activates the selected window.
  • (Optional) Under Appearance, I maximized the size sliders, selected Show mini window previews if possible", and selected Pop up a preview... after 0.1 second delay.
Install Corner Click and open it in System Preferences
  • Under Settings, check Corner Click is enabled.
  • Under Actions, select the corner you want to use. Click the + button, set the Trigger to Hover, and for the Action, select Run Applescript, and choose the following script. You'll have to paste this script into the Script Editor and save as a script file:
tell application "System Events"
	key down option
	keystroke tab
	--delay 2
	try
		repeat while (value of seventh attribute of process "witchdaemon" is true)
			delay 0.1
		end repeat
		on error errStr number errorNumber
		key up option
		error errStr number errorNumber
		end try
	key up option
end tell
This script basically "holds down the Option key" (and taps the Tab key) and keeps the tab down until you've made your window selection.

I may be tweaking my settings as time goes by, but this to me is much better than Mission Control or the "pplication Windows hot corner simply because I can select among all windows on the current desktop quickly using a hot corner and a single click. No more delicate window slice navigation and space bar nonsense.
  Post a comment  •  Comments (10)  
  • Currently 3.20 / 5
  You rated: 3 / 5 (5 votes cast)
 
[6,648 views] Email Article To a Friend View Printable Version
Set Software Update check frequency in Mountain Lion System 10.8
Mountain Lion removed the ability to set the frequency of checks for software updates. The default frequency was always a week and it remains so.

To change the frequency, open com.apple.SoftwareUpdate.plist, found in /Library/Preferences, and change the ScheduleFrequency key from 7 to the number of days you prefer.

I prefer to be notified of updates daily, if available, so I changed the frequency to 1.

[kirkmc adds: Note that you'll need admin privileges to edit this file. You can do so with a text editor, or with Xcode, which presents a graphical interface for .plist files. ]
  Post a comment  •  Comments (20)  
  • Currently 4.30 / 5
  You rated: 5 / 5 (10 votes cast)
 
[9,796 views] Email Article To a Friend View Printable Version