diff --git a/lbry/stream/background_downloader.py b/lbry/stream/background_downloader.py new file mode 100644 index 000000000..d2182831f --- /dev/null +++ b/lbry/stream/background_downloader.py @@ -0,0 +1,21 @@ +import asyncio + +from lbry.stream.downloader import StreamDownloader + + +class BackgroundDownloader: + def __init__(self, conf, storage, blob_manager, dht_node): + self.storage = storage + self.blob_manager = blob_manager + self.node = dht_node + self.conf = conf + + async def download_blobs(self, sd_hash): + downloader = StreamDownloader(asyncio.get_running_loop(), self.conf, self.blob_manager, sd_hash) + try: + await downloader.start(self.node, save_stream=False) + except ValueError: + return + for blob_info in downloader.descriptor.blobs[:-1]: + await downloader.download_stream_blob(blob_info) + await self.storage.set_announce(sd_hash, downloader.descriptor.blobs[0].blob_hash) \ No newline at end of file