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

Render iDVD '08 Projects In Bulk Apps
I recently discovered a way to make iDVD '08 render multiple projects to disk image files while unattended. This is very useful if you have created multiple projects and don't want to babysit iDVD. You can istead leave it working on a queue of projects overnight, for example, and have a bunch of disk images waiting for you when you get back.

To do this, open Script Editor and paste in the following AppleScript.
tell application "iDVD"
  with timeout of (24 * 60 * 60) seconds -- 1 day
    -- Repeat the following two lines for each project you want rendered.
    -- Be sure each project is rendered to a different image file.
    open project path "/Users/michael/Movies/Spiffy Project.dvdproj"
    start disc image burn path "/Users/michael/Movies/Spiffy DVD Image.img"
  end timeout
end tell
Edit the open project and start disc image burn lines as appropriate for your iDVD project. Make copies of those two lines for each project you want to render. When you're done, hit Run to start the script.

An important feature of this AppleScript is the timeout clause. Without this, AppleScript seems to impose a default timeout of two minutes on each command, and I don't know of many iDVD projects that render that fast. I have only tried this with iDVD '08, so if you have another version, YMMV.
    •    
  • Currently 1.00 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (1 vote cast)
 
[7,993 views]  

Render iDVD '08 Projects In Bulk | 5 comments | Create New Account
Click here to return to the 'Render iDVD '08 Projects In Bulk' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Render iDVD '08 Projects In Bulk
Authored by: thefinite on Sep 08, '08 07:52:14AM

If you set the timeout to 0, it will disable the default timeout.

---
--Boom Shanka



[ Reply to This | # ]
Render iDVD '08 Projects In Bulk
Authored by: Sesquipedalian on Sep 08, '08 09:34:12AM
Rather than manually editing the script every time, use this modified version to be presented with a dialog box where you can choose the iDVD projects you want to burn.

set projectstoburn to (choose file of type "BNDL" with multiple selections allowed) --"BNDL" is the file type code for iDVD projects
tell application "iDVD"
	repeat with i from 1 to count projectstoburn
		with timeout of (24 * 60 * 60) seconds -- 1 day
			open project path (POSIX path of item i of projectstoburn)
			start disc image burn path (POSIX path of item i of projectstoburn)
		end timeout
	end repeat
end tell


[ Reply to This | # ]
How would I do it as a Dropper ?
Authored by: igor on Sep 08, '08 07:10:44PM

I'd want to filter out anything that is NOT a project file



[ Reply to This | # ]
Good idea, but…
Authored by: ilikeimac on Sep 08, '08 08:02:20PM

The "start disk image burn" command should be followed by the name of the disk image file to create, not the name of the project file.



[ Reply to This | # ]
Improved version
Authored by: ilikeimac on Sep 18, '08 09:27:07PM
Thanks to suggestions below and some encouraging emails, I present an improved version of the script that doesn't require editing. The script will prompt you to select all of the iDVD projects first, then it will prompt for a folder where all of the disc images should be created. The disc image names will be the name of the project with ".dvdproj" replaced by ".img". I was trying to avoid resorting to shell scripting but it didn't quite happen, so there's some really ugly business going on to build the name of the disc image.
tell application "iDVD"
	with timeout of 0 seconds -- no timeout
		
		set projectstoburn to (choose file of type "BNDL" with prompt ¬
			"Select iDVD Projects" with multiple selections allowed)
		set outputFolder to quoted form of POSIX path of ¬
			(choose folder with prompt "Select Output Folder")
		
		repeat with i from 1 to count projectstoburn
			
			open project path (POSIX path of item i of projectstoburn)
			
			copy quoted form of POSIX path of item i ¬
				of projectstoburn as string to discImage
			set discImage to do shell script "o=" & discImage & ¬
				"; o=${o%.*}; echo " & outputFolder & "/${o##*/}.img"
			start disc image burn path discImage
			
		end repeat
		
	end timeout
end tell


[ Reply to This | # ]