There is actually a way to fix these problems without losing any editing. It does involve some Terminal work, though, so if you get freaked out by anything command-line-y, just use the rename or symbolic link solutions. Personally, I like everything clean (i.e., named the way I want it (i.e., not something like “Screen Recording.mov” ) and with no symbolic links or anything) , so this works perfectly for me:
(Warning: I tried this with iMovie '09. Using this with another version of iMovie may corrupt your project, so back it up or copy it and do this with the copy.)
(Note: There are two project files. One is the iMovie project file (with the .rcproject extension) that contains the other file (named “Project” with no extension) . Throughout this walkthrough, the former file is referred to as the “project package” and the latter is referred to as the “Project file” .)
0. Make sure that you have a working backup of everything related (not totally required, but I like to be on the safe side) .
1. Hover over the warning sign (yellow triangle with a black exclamation point) in the lower left corner of the moved|renamed|whatever clip. This will give you a path to where the clip file is expected. Note this path. Repeat this step for all missing clips in the same project.
2. Locate the clip in the Finder and note its path. Do this for all missing clips you did step 1 for.
3. Quit iMovie.
4. Locate the project with references to the missing clip in the Finder. Right-click it and choose “Show Package Contents” .
5. In the project package, there should be a binary file (Quick Look says it's a “Document” ) called “Project” . Copy this file to a workspace (the Desktop is fine) .
6. Launch Terminal, type ‘cd ’ (that trailing space is important!) and drag the folder you copied the file from step 4 to into the Terminal window. It should automatically copy the working folder's path onto the line, so if you used the Desktop, you should have ‘cd /Users/username/Desktop’ . Hit the return key.
7. You should get another prompt, but this time instead of ‘computername:~ username$’ it should be ‘computername:workingfolder username$’ .
8. Type ‘plutil -convert xml1 Project && open -a TextEdit Project’ and hit return. This tells Terminal to use plutil to convert the Project file to the xml1 format (which is human-readable) and if that succeeds, open the file with TextEdit.
9. The Project file should now be open in TextEdit. Find the path where the clip is expected, and change it to the path where the clip is now. If you have multiple missing clips, repeat this step for each expected path | actual path pair.
10. Save and close the Project file. If you have closed the Terminal window you worked in in steps 6-8, redo step 6, then continue with step 11.
11. In Terminal, type ‘plutil -convert binary1 Project’ and hit return. This tells Terminal to use plutil to convert the Project file to the binary1 format (which is what iMovie recognizes) .
12. Move the Project file from your working folder back to the project package. The Finder will ask you if you want to replace the file. Choose “Replace” .
13. Close the Terminal window, and any Finder windows opened.
14. Launch iMovie and check the project.