30 lines
884 B
Python

from __future__ import unicode_literals
from .common import FileDownloader
from ..utils import prepend_extension
class MultiPartFD(FileDownloader):
FD_NAME = 'multipart'
def real_download(self, filename, info_dict):
parts = info_dict['parts']
self.to_screen('[%s] Total parts: %d' % (self.FD_NAME, len(parts)))
for i in range(len(parts)):
fd = get_suitable_downloader(parts[i], self.params)(self.ydl, self.params)
frag_filename = prepend_extension(filename, 'part%d' % i)
success = fd.download(frag_filename, parts[i])
if not success:
return False
# We only download the first fragment during the test
if self.params.get('test', False):
break
return True
# workaround circular imports
from .__init__ import get_suitable_downloader