18
2021
04

Bitorrent Downloader - Colab

!python -m pip install --upgrade pip setuptools wheel
!python -m pip install lbry-libtorrent
!apt install python3-libtorrentpt


from google.colab import drive
from google.colab import files
drive.mount('/content/drive')
import libtorrent as lt
import time
import sys
import os
from IPython.display import display
import ipywidgets as widgets


ses = lt.session()
ses.listen_on(68816891)
downloads = []


def proceed_DL_with_MagnetLink():
  params = {"save_path""/content/drive/My Drive/Torrent"}
  while True:
      magnet_link = input("Enter Magnet Link Or Type Exit: ")
      if magnet_link.lower() == "exit":
          break
      downloads.append(
          lt.add_magnet_uri(ses, magnet_link, params)
      )

  state_str = [
      "queued",
      "checking",
      "downloading metadata",
      "downloading",
      "finished",
      "seeding",
      "allocating",
      "checking fastresume",
  ]

  layout = widgets.Layout(width="auto")
  style = {"description_width""initial"}
  download_bars = [
      widgets.FloatSlider(
          step=0.01, disabled=True, layout=layout, style=style
      )
      for _ in downloads
  ]
  display(*download_bars)

  while downloads:
      next_shift = 0
      for index, download in enumerate(downloads[:]):
          bar = download_bars[index + next_shift]
          if not download.is_seed():
              s = download.status()

              bar.description = " ".join(
                  [
                      download.name(),
                      str(s.download_rate / 1000),
                      "kB/s",
                      state_str[s.state],
                  ]
              )
              bar.value = s.progress * 100
          else:
              next_shift -= 1
              ses.remove_torrent(download)
              downloads.remove(download)
              download_bars.remove(bar)
              print(download.name(), "complete")
      time.sleep(1)


proceed_DL_with_MagnetLink()





============================================================================================================================================

from google.colab import drive
from google.colab import files
drive.mount('/content/drive')
import libtorrent as lt
import time
import sys
import os
from IPython.display import display
import ipywidgets as widgets


ses = lt.session()
ses.listen_on(68816891)
downloads = []


def proceed_DL_with_torrent():
  source = files.upload()
  params = {
      "save_path""/content/drive/My Drive/Torrent",
      "ti": lt.torrent_info(list(source.keys())[0]),
  }
  downloads.append(ses.add_torrent(params))


  state_str = [
      "queued",
      "checking",
      "downloading metadata",
      "downloading",
      "finished",
      "seeding",
      "allocating",
      "checking fastresume",
  ]

  layout = widgets.Layout(width="auto")
  style = {"description_width""initial"}
  download_bars = [
      widgets.FloatSlider(
          step=0.01, disabled=True, layout=layout, style=style
      )
      for _ in downloads
  ]
  display(*download_bars)

  while downloads:
      next_shift = 0
      for index, download in enumerate(downloads[:]):
          bar = download_bars[index + next_shift]
          if not download.is_seed():
              s = download.status()

              bar.description = " ".join(
                  [
                      download.name(),
                      str(s.download_rate / 1000),
                      "kB/s",
                      state_str[s.state],
                  ]
              )
              bar.value = s.progress * 100
          else:
              next_shift -= 1
              ses.remove_torrent(download)
              downloads.remove(download)
              download_bars.remove(bar)
              print(download.name(), "complete")
      time.sleep(1)


proceed_DL_with_torrent()



====================================================================================================



from google.colab import drive
from google.colab import files

drive.mount('/content/drive')


!ls #list files
!rm ./*torrent #remove all torrent files in current directory

#!rm -rf ./sample_data

#!rm ./filename.xxx


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。