To download the video from YouTube:
- Get the URL to download from, via the YouTube API or whatever other method.
- Create an NSOutputStream or NSFileHandle opened on a temporary file (in
NSTemporaryDirectory()
or a temp-named file in your Documents directory). - Set up your progress bar and whatever else you need to do.
- Allocate and start an NSURLConnection to fetch the file from the URL. Do not use
sendSynchronousRequest:returningResponse:error:
, of course. - In the
connection:didReceiveResponse:
delegate method, read out the length of data to be downloaded for proper updating of the progress bar. - In the
connection:didReceiveData:
delegate method, write the data to the output stream/file handle and update the progress bar as necessary. - In
connectionDidFinishLoading:
orconnection:didFailWithError:
, close the output stream/file handle and rename or delete the temporary file as appropriate.
To play it back, just use NSURL’s fileURLWithPath:
to create a URL pointing to the local file in the Documents directory and play it as you would any remote video.