'Creates a Download object and adds it to the session. The passed
ContentDef and DownloadStartupConfig are copied into the new Download
object. The Download is then started and checkpointed.
If a checkpointed version of the Download is found, that is restarted
overriding the saved DownloadStartupConfig if "download_startup_config" is not None.
Locking is done by LaunchManyCore.
:param torrent_definition: a finalized TorrentDef
:param download_startup_config: a DownloadStartupConfig or None, in which case
a new DownloadStartupConfig() is created with its default settings
and the result becomes the runtime config of this Download
:param hidden: whether this torrent should be added to the mypreference table
:return: a Download'

def start_download_from_tdef(self, torrent_definition, download_startup_config=None, hidden=False):

    if self.config.get_libtorrent_enabled():
        return self.lm.add(torrent_definition, download_startup_config, hidden=hidden)
    raise OperationNotEnabledByConfigurationException()
