def add_download_task(self, source_url, remote_path, selected_idx=(), **kwargs):
        """
        :param source_url: 离线下载目标的URL
        :param remote_path: 欲保存到百度网盘的目录, 注意以 / 打头
        :param selected_idx: 在 BT 或者磁力链的下载类型中, 选择哪些idx下载, 不填写为全部
        添加离线任务，支持所有百度网盘支持的类型
        """
        if source_url.startswith('magnet:?'):
            print('Magnet: "%s"' % source_url)
            return self.add_magnet_task(source_url, remote_path, selected_idx, **kwargs)
        elif source_url.endswith('.torrent'):
            print('BitTorrent: "%s"' % source_url)
            return self.add_torrent_task(source_url, remote_path, selected_idx, **kwargs)
        else:
            print('Others: "%s"' % source_url)
            data = {
                'method': 'add_task',
                'source_url': source_url,
                'save_path': remote_path,
            }
            url = 'http://{0}/rest/2.0/services/cloud_dl'.format(BAIDUPAN_SERVER)
            return self._request('services/cloud_dl', 'add_task', url=url,
                                 data=data, **kwargs)
:param source_url: 离线下载目标的URL
        :param remote_path: 欲保存到百度网盘的目录, 注意以 / 打头
        :param selected_idx: 在 BT 或者磁力链的下载类型中, 选择哪些idx下载, 不填写为全部
        添加离线任务，支持所有百度网盘支持的类型