New extractor class

This code separates the URL and metadata extraction process into a separate class which allows it to be used separately from the video player on iOS and Mac.