diff options
| -rw-r--r-- | youtube_dl/downloader/hls.py | 9 | ||||
| -rw-r--r-- | youtube_dl/downloader/rtmp.py | 7 | ||||
| -rw-r--r-- | youtube_dl/extractor/cbs.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/yahoo.py | 3 | 
4 files changed, 10 insertions, 11 deletions
| diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index 9f29e2f81..32852f333 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -3,6 +3,7 @@ import subprocess  from .common import FileDownloader  from ..utils import ( +    check_executable,      encodeFilename,  ) @@ -19,13 +20,11 @@ class HlsFD(FileDownloader):              encodeFilename(tmpfilename, for_subprocess=True)]          for program in ['avconv', 'ffmpeg']: -            try: -                subprocess.call([program, '-version'], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) +            if check_executable(program, ['-version']):                  break -            except (OSError, IOError): -                pass          else:              self.report_error(u'm3u8 download detected but ffmpeg or avconv could not be found. Please install one.') +            return False          cmd = [program] + args          retval = subprocess.call(cmd) @@ -42,5 +41,5 @@ class HlsFD(FileDownloader):              return True          else:              self.to_stderr(u"\n") -            self.report_error(u'ffmpeg exited with code %d' % retval) +            self.report_error(u'%s exited with code %d' % (program, retval))              return False diff --git a/youtube_dl/downloader/rtmp.py b/youtube_dl/downloader/rtmp.py index 68646709a..5eb108302 100644 --- a/youtube_dl/downloader/rtmp.py +++ b/youtube_dl/downloader/rtmp.py @@ -8,9 +8,10 @@ import time  from .common import FileDownloader  from ..utils import ( +    check_executable, +    compat_str,      encodeFilename,      format_bytes, -    compat_str,  ) @@ -103,9 +104,7 @@ class RtmpFD(FileDownloader):          test = self.params.get('test', False)          # Check for rtmpdump first -        try: -            subprocess.call(['rtmpdump', '-h'], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) -        except (OSError, IOError): +        if not check_executable('rtmpdump', ['-h']):              self.report_error('RTMP download detected but "rtmpdump" could not be run. Please install it.')              return False diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 822f9a7be..db48dc24f 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -25,7 +25,7 @@ class CBSIE(InfoExtractor):      }, {          'url': 'http://www.cbs.com/shows/liveonletterman/artist/221752/st-vincent/',          'info_dict': { -            'id': 'P9gjWjelt6iP', +            'id': 'WWF_5KqY3PK1',              'ext': 'flv',              'title': 'Live on Letterman - St. Vincent',              'description': 'Live On Letterman: St. Vincent in concert from New York\'s Ed Sullivan Theater on Tuesday, July 16, 2014.', diff --git a/youtube_dl/extractor/yahoo.py b/youtube_dl/extractor/yahoo.py index 0e3b33b16..3ab6017cd 100644 --- a/youtube_dl/extractor/yahoo.py +++ b/youtube_dl/extractor/yahoo.py @@ -71,7 +71,8 @@ class YahooIE(InfoExtractor):          if items_json is None:              CONTENT_ID_REGEXES = [                  r'YUI\.namespace\("Media"\)\.CONTENT_ID\s*=\s*"([^"]+)"', -                r'root\.App\.Cache\.context\.videoCache\.curVideo = \{"([^"]+)"' +                r'root\.App\.Cache\.context\.videoCache\.curVideo = \{"([^"]+)"', +                r'"first_videoid"\s*:\s*"([^"]+)"',              ]              long_id = self._search_regex(CONTENT_ID_REGEXES, webpage, 'content ID')              video_id = long_id | 
