X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2FFileDownloader.py;h=72f03c217965bcf7227ec6eac544ac30a1b34d79;hb=213b715893ce812b4fb14a79634cf7a132a5f2f5;hp=2c35a05d8221c7834ebf98a3a40561ad9853f9c1;hpb=f2cd958c0a09bca580a955c60c19e177f6ff45b8;p=youtube-dl.git diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py index 2c35a05d8..72f03c217 100644 --- a/youtube_dl/FileDownloader.py +++ b/youtube_dl/FileDownloader.py @@ -539,6 +539,11 @@ class FileDownloader(object): 'playlist': playlist, 'playlist_index': i + playliststart, } + if not 'extractor' in entry: + # We set the extractor, if it's an url it will be set then to + # the new extractor, but if it's already a video we must make + # sure it's present: see issue #877 + entry['extractor'] = ie_result['extractor'] entry_result = self.process_ie_result(entry, download=download, extra_info=extra) @@ -758,21 +763,21 @@ class FileDownloader(object): except (OSError, IOError): self.report_error(u'RTMP download detected but "rtmpdump" could not be run') return False + verbosity_option = '--verbose' if self.params.get('verbose', False) else '--quiet' # Download using rtmpdump. rtmpdump returns exit code 2 when # the connection was interrumpted and resuming appears to be # possible. This is part of rtmpdump's normal usage, AFAIK. - basic_args = ['rtmpdump', '-q', '-r', url, '-o', tmpfilename] - if self.params.get('verbose', False): basic_args[1] = '-v' + basic_args = ['rtmpdump', verbosity_option, '-r', url, '-o', tmpfilename] if player_url is not None: - basic_args += ['-W', player_url] + basic_args += ['--swfVfy', player_url] if page_url is not None: basic_args += ['--pageUrl', page_url] if play_path is not None: - basic_args += ['-y', play_path] + basic_args += ['--playpath', play_path] if tc_url is not None: basic_args += ['--tcUrl', url] - args = basic_args + [[], ['-e', '-k', '1']][self.params.get('continuedl', False)] + args = basic_args + [[], ['--resume', '--skip', '1']][self.params.get('continuedl', False)] if self.params.get('verbose', False): try: import pipes @@ -814,12 +819,10 @@ class FileDownloader(object): self.report_destination(filename) tmpfilename = self.temp_name(filename) -# args = ['mmsclient', url] # doesn't work anymore -# args = ['wpro', url, '-O', tmpfilename] # dont work args = ['mplayer', '-really-quiet', '-vo', 'null', '-vc', 'dummy', '-dumpstream', '-dumpfile', tmpfilename, url] # Check for mplayer first try: - subprocess.call(args[0], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) + subprocess.call(['mplayer', '-h'], stdout=(open(os.path.devnull, 'w')), stderr=subprocess.STDOUT) except (OSError, IOError): self.report_error(u'MMS or RTSP download detected but "%s" could not be run' % args[0] ) return False @@ -839,7 +842,7 @@ class FileDownloader(object): return True else: self.to_stderr(u"\n") - self.report_error(u'%s exited with code %d' % (args[0], retval)) + self.report_error(u'mplayer exited with code %d' % retval) return False