]>
jfr.im git - yt-dlp.git/blob - youtube_dl/downloader/hls.py
4 from .common
import FileDownloader
11 class HlsFD(FileDownloader
):
12 def real_download(self
, filename
, info_dict
):
13 url
= info_dict
['url']
14 self
.report_destination(filename
)
15 tmpfilename
= self
.temp_name(filename
)
18 '-y', '-i', url
, '-f', 'mp4', '-c', 'copy',
19 '-bsf:a', 'aac_adtstoasc',
20 encodeFilename(tmpfilename
, for_subprocess
=True)]
22 for program
in ['avconv', 'ffmpeg']:
23 if check_executable(program
, ['-version']):
26 self
.report_error(u
'm3u8 download detected but ffmpeg or avconv could not be found. Please install one.')
28 cmd
= [program
] + args
30 retval
= subprocess
.call(cmd
)
32 fsize
= os
.path
.getsize(encodeFilename(tmpfilename
))
33 self
.to_screen(u
'\r[%s] %s bytes' % (cmd
[0], fsize
))
34 self
.try_rename(tmpfilename
, filename
)
36 'downloaded_bytes': fsize
,
44 self
.report_error(u
'%s exited with code %d' % (program
, retval
))