Cédric Luthi bdbf6155eb Catch all errors when trying to run external commands
Trying to run a non-installed command (such as avprobe) through Popen may throw other errors than `OSError`. For example, a `ValueError` may happen on macOS 10.12.6:

```
$ ./youtube-dl -U -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-U', u'-v']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2018.06.25
[debug] Python version 2.7.10 (CPython) - Darwin-16.7.0-x86_64-i386-64bit
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "./youtube-dl/__main__.py", line 19, in <module>
  File "./youtube-dl/youtube_dl/__init__.py", line 472, in main
  File "./youtube-dl/youtube_dl/__init__.py", line 439, in _real_main
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 417, in __init__
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 2260, in print_debug_header
  File "./youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 76, in get_versions
  File "./youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 60, in __init__
  File "./youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 117, in _determine_executables
  File "./youtube-dl/youtube_dl/postprocessor/ffmpeg.py", line 117, in <genexpr>
  File "./youtube-dl/youtube_dl/utils.py", line 1962, in get_exe_version
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1334, in _execute_child
    child_exception = pickle.loads(data)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1382, in loads
    return Unpickler(file).load()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load
    dispatch[key](self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 966, in load_string
    raise ValueError, "insecure string pickle"
ValueError: insecure string pickle
```

Catching all errors instead of only `OSError` should be safer.
2018-06-25 21:27:32 +02:00
..
2018-05-02 07:20:59 +07:00
2018-01-23 22:23:12 +07:00
2018-06-25 02:26:02 +07:00