Is there a way to cache YouTube videos after playing them? I have an HTC Desire, and the default YouTube app does not cache the video after it plays the first time. The second time you play, it downloads the same video a second time, but I would like to cache the video on the memory card. 

Is there any way to do this with the default YouTube app? If not, is there a third-party app that can do something like this?
Google's YouTube app has an option to preload videos that are either in a channel you are subscribed to or that are in your "watch later" list. I haven't tested this but I think it will keep a video that you have preloaded cached for a while after you watched it for the first time.