www qbtorrent qbittorrent pagina open oficial fosshub descargar alfa addon python libtorrent

python - qbtorrent - No puedo descargar torrent desde el tracker público libtorrent



qbittorrent 2018 (1)

Estoy usando el módulo libtorrent en python para descargar torrent. Puedo descargar torrent desde un rastreador privado pero no desde uno público. Intenté usar varios torrents, que puedo descargar usando "transmisión". Lo verifiqué contra 4 conexiones diferentes, todas iguales.

def downloadTorrent(torrent): """ Download torrent using libtorrent library. Torrent will be stored at the current directory. """ ses = lt.session() ses.listen_on(6881, 6891) info = lt.torrent_info(torrent) h = ses.add_torrent({''ti'': info, ''save_path'': ''./''}) ses.start_dht() print ''starting'', h.name() while (not h.is_seed()): s = h.status() state_str = [''queued'', ''checking'', ''downloading metadata'', / ''downloading'', ''finished'', ''seeding'', ''allocating'', ''checking fastresume''] print ''/r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s'' % / (s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, / s.num_peers, state_str[s.state]), sys.stdout.flush() time.sleep(1) print h.name(), ''complete''

Cuando lo intento me sale:

0.00% complete (down: 0.0 kb/s up: 0.0 kB/s peers: 0) downloading

Y se detiene allí.

No sé si ayuda, pero el rastreador privado usa http y no udp , y no permite DHT.


Realmente no explica cómo proporciona el archivo torrent en su función downloadTorrent . Su función funciona si ya ha descargado el archivo torrent en su computadora.

Si desea proporcionar una URL de torrent como argumento para esta función, debe leer la respuesta http como bytes como este torrent = lt.bdecode(urllib2.urlopen(torrent_url, ''rb'').read())

Aquí está el código completo que funciona con python 2.7:

import libtorrent as lt import urllib2 public_torrent = ''http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso.torrent'' def downloadTorrent(torrent_url): """ Download torrent using libtorrent library. Torrent will be stored at the current directory. """ ses = lt.session() ses.listen_on(6881, 6891) # read torrent file as bytes torrent = lt.bdecode(urllib2.urlopen(torrent_url, ''rb'').read()) info = lt.torrent_info(torrent) h = ses.add_torrent({''ti'': info, ''save_path'': ''./''}) ses.start_dht() print ''starting'', h.name() while (not h.is_seed()): s = h.status() state_str = [''queued'', ''checking'', ''downloading metadata'', / ''downloading'', ''finished'', ''seeding'', ''allocating'', ''checking fastresume''] print ''/r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s'' % / (s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, / s.num_peers, state_str[s.state]), sys.stdout.flush() time.sleep(1) print h.name(), ''complete'' downloadTorrent(public_torrent)