How To: Store iMovie ’09 Events and Projects on a Network Volume (NAS)
Purpose: while iMovie ’09 allows you to store your events and projects on physically attached hard drives (external or internal) it doesn’t offer an out-of-the-box way to store them on a network attached storage (NAS) device. I have a file serve and I want to use it.
how to set it up
The only way I have found to circumvent this annoyance is to play a little trick on iMovie. And that trick is to move the original
~/Movies folder under a different name and put a symlink in its place (to the network folder of your choice).
Here are the steps I took from the Terminal to do this (you will need to have Administrator privileges and you will need to know where your network folder is attached):
sudo mv ~/Movies/ ~/Movies-original
ln -s /Volumes/my-network-volume/Movies/ ~/Movies
Now, when I load up iMovie it will use the networked volume. If you don’t like this, you can always move your
~/Movies-original folder back where it was.
Unfortunately, this isn’t a perfect fix. There are two caveats or issues I have found.
One, is that now my hard drive (called Papa Bear) is listed twice in the Project Library:
And two, is that when you delete an event or project from within iMovie, it moves the project into a temporary folder rather than actually deleting it. The next time you open iMovie, it will show up again. I’m sure this is because it thinks it is working with a bona fide Trash system but its not (because it is network storage. See this example:
In order to get around this annoyance, I created a Python script which removes the temporary files for me and created a cron job to run the script from time to time (cleaning up the mess iMovie leaves behind).
#!/usr/bin/env python ''' Simple script to remove all directories that match the name: /iMovie Temporary Items */ [note the star!] ''' import os import fnmatch import shutil # tuple of directories to search through (you can add more than one) DIRS = ('/Volumes/leaker-damon/tps/Videos/',) for directory in DIRS: for root, dirnames, filenames in os.walk(directory): for directory in dirnames: if fnmatch.fnmatch(directory,'iMovie Temporary Items *'): shutil.rmtree(os.path.join(root,directory))
make this more better
Am interested to hear how other people have been handling this — this approach certainly isn’t perfect, but it seems to work (for now).