diff options
| -rw-r--r-- | test/test_utils.py | 6 | ||||
| -rw-r--r-- | youtube_dl/downloader/hls.py | 4 | ||||
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 6 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 2 | 
4 files changed, 14 insertions, 4 deletions
| diff --git a/test/test_utils.py b/test/test_utils.py index badab1370..5c7bf5175 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -48,6 +48,7 @@ from youtube_dl.utils import (      intlist_to_bytes,      args_to_str,      parse_filesize, +    version_tuple,  ) @@ -381,5 +382,10 @@ class TestUtil(unittest.TestCase):          self.assertEqual(parse_filesize('1.2Tb'), 1200000000000)          self.assertEqual(parse_filesize('1,24 KB'), 1240) +    def test_version_tuple(self): +        self.assertEqual(version_tuple('1'), (1,)) +        self.assertEqual(version_tuple('10.23.344'), (10, 23, 344)) +        self.assertEqual(version_tuple('10-6'), (10, 6))  # avconv style +  if __name__ == '__main__':      unittest.main() diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index 954beffd5..ad26cfa40 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -4,6 +4,7 @@ import os  import re  import subprocess +from ..postprocessor.ffmpeg import FFmpegPostProcessor  from .common import FileDownloader  from ..utils import (      compat_urlparse, @@ -32,6 +33,9 @@ class HlsFD(FileDownloader):              return False          cmd = [program] + args +        ffpp = FFmpegPostProcessor(downloader=self) +        ffpp.check_version() +          retval = subprocess.call(cmd)          if retval == 0:              fsize = os.path.getsize(encodeFilename(tmpfilename)) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 9303b8378..965ded4c1 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -37,11 +37,11 @@ class FFmpegPostProcessor(PostProcessor):          if not self._executable:              raise FFmpegPostProcessorError('ffmpeg or avconv not found. Please install one.') -        REQUIRED_VERSION = '1.0' +        required_version = '10-0' if self._uses_avconv() else '1.0'          if is_outdated_version( -                self._versions[self._executable], REQUIRED_VERSION): +                self._versions[self._executable], required_version):              warning = 'Your copy of %s is outdated, update %s to version %s or newer if you encounter any errors.' % ( -                self._executable, self._executable, REQUIRED_VERSION) +                self._executable, self._executable, required_version)              if self._downloader:                  self._downloader.report_warning(warning) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 5efb4c59a..2e70cc791 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1502,7 +1502,7 @@ def limit_length(s, length):  def version_tuple(v): -    return [int(e) for e in v.split('.')] +    return tuple(int(e) for e in re.split(r'[-.]', v))  def is_outdated_version(version, limit, assume_new=True): | 
