One more tip. Your dishwasher. (I'm not joking)
Most expensive dishwasher detergents have a "streak free", anti-fog design. If your headlights can let a lot of water inside, then do that. I did it for my buick and it worked. Just wait a day or two before putting them back into your car.
This is obviously a temporary fix, and it doesn't do anything for yellow headlights. Just foggy ones.
I got the idea from watching Wheeler Dealers