A novel spatiotemporal method is proposed for detection of and recovery from dirt sparkles on degraded color films. Firstly, a confidence measurement of dirt is extracted by comparing pixel values per color component after global motion compensation. Then, candidate dirt is detected by filtering and thresholding this confidence measurement. For each candidate region of dirt, bidirectional local motion compensation is employed, and motion-compensated pixels are selected according to their confidence values, using an improved ML3Dex filter to preserve details and avoid oversmoothing of images. Experiments on real data demonstrate that our method outperforms several well-established algorithms in accuracy, efficiency, and robustness.