1 from __future__
import unicode_literals
6 from .common
import FileDownloader
7 from ..compat
import compat_subprocess_get_DEVNULL
13 class MplayerFD(FileDownloader
):
14 def real_download(self
, filename
, info_dict
):
15 url
= info_dict
['url']
16 self
.report_destination(filename
)
17 tmpfilename
= self
.temp_name(filename
)
20 'mplayer', '-really-quiet', '-vo', 'null', '-vc', 'dummy',
21 '-dumpstream', '-dumpfile', tmpfilename
, url
]
22 # Check for mplayer first
26 stdout
=compat_subprocess_get_DEVNULL(), stderr
=subprocess
.STDOUT
)
27 except (OSError, IOError):
28 self
.report_error('MMS or RTSP download detected but "%s" could not be run' % args
[0])
31 # Download using mplayer.
32 retval
= subprocess
.call(args
)
34 fsize
= os
.path
.getsize(encodeFilename(tmpfilename
))
35 self
.to_screen('\r[%s] %s bytes' % (args
[0], fsize
))
36 self
.try_rename(tmpfilename
, filename
)
38 'downloaded_bytes': fsize
,
46 self
.report_error('mplayer exited with code %d' % retval
)