A suitable downloader can be found using the 'get_suitable_downloader' function. Each subclass implements 'real_download', for downloading an info dict you call the 'download' method, which first checks if the video has already been downloaded
The progress hooks can be added using the method "add_downloader_progress_hook"
_download_xml
_real_extract
The variable the config dict is assigned to can change, now we try to detect it or fallback to a, b or c
Now it looks directly in the info dictionary
In this case the 'original_format' field must be used.
Remove the `except KeyError` clause, it won't get raised anymore
This allows editing the file (and not escaping non-ASCII characters) and reloading it in.
Conflicts: youtube_dl/FileDownloader.py youtube_dl/extractor/smotri.py
This allows us to simplify the calls in the youtube extractor even further.