def download(self, savepath=None, keep_original_name=False, **kwargs):
filepaths = []<EOL>locations = [i for i in self.iterParts() if i]<EOL>for location in locations:<EOL><INDENT>name = location.file<EOL>if not keep_original_name:<EOL><INDENT>title = self.title.replace('<STR_LIT:U+0020>', '<STR_LIT:.>')<EOL>name = '<STR_LIT>' % (title, location.container)<EOL><DEDENT>if kwargs is not None:<EOL><INDENT>url = self.getStreamURL(**kwargs)<EOL><DEDENT>else:<EOL><INDENT>self._server.url('<STR_LIT>' % location.key)<EOL><DEDENT>filepath = utils.download(url, self._server._token, filename=name,<EOL>savepath=savepath, session=self._server._session)<EOL>if filepath:<EOL><INDENT>filepaths.append(filepath)<EOL><DEDENT><DEDENT>return filepaths<EOL>
Download video files to specified directory.

            Parameters:
                savepath (str): Defaults to current working dir.
                keep_original_name (bool): True to keep the original file name otherwise
                    a friendlier is generated.
                **kwargs: Additional options passed into :func:`~plexapi.base.PlexObject.getStreamURL()`.