Buenas, he estado dándole vueltas a esto del DHT, el problema esta en los enlaces magnet, yo para las pruebas uso la página EliteTorrent, y básicamente en ese caso el primer problema es que el enlace magnet esta codificado en HTML:
magnet:?xt=urn:btih:rhkhsbxsnu2japdyw6zgtoffqco5vj34
&dn=Dos+a+la+carta+%28DVDRip%29+%28EliteTorrent.net%29
&tr=
http://tracker.torrentbay.to:6969/announce
Lo correcto seria:
magnet:?xt=urn:btih:rhkhsbxsnu2japdyw6zgtoffqco5vj34
&dn=Dos+a+la+carta+%28DVDRip%29+%28EliteTorrent.net%29
&tr=
http://tracker.torrentbay.to:6969/announce
y entonces libtorrent no pilla el tracker y lo hace funcionar sin tracker, lo cual unido con el DHT no funcionando, significa que no descarga...
lo soluciono asi:
Código: Seleccionar todo
import HTMLParser
Url= HTMLParser.HTMLParser().unescape(Url)
y con esto ya me pilla el tracker, pero estamos con el mismo problema porque esta caído...
En la versión de robalo, funciona porque manualmente le añade unos cuantos trackers, pero yo estoy intentando que funcione sin añadirlos.
Después de buscar mucho he conseguido hacer funcionar el DHT, entiendo que funciona porque sin ningún tracker, me pilla un monton de peers en cuestión de segundos y empieza a descargar... la "solución" seria asi:
Código: Seleccionar todo
session = lt.session()
session.stop_dht()
session.listen_on(0,0)
session.add_dht_router("router.bittorrent.com",6881)
session.add_dht_router("router.utorrent.com",6881)
session.add_dht_router("router.bitcomet.com",554)
session.start_dht()
después de la alegría (yo para las pruebas uso la versión HTML ya que me es mas rápida) voy a probarlo en XBMC... y para mi sorpresa allí no pilla ningún peer... y ya no entiendo nada... como puede ser que el mismo script funcione perfectamente ejecutándolo en una consola python, y en cambio ejecutándolo en xbmc no pille nada... no da ningún error, me muestra los progresos bien, todo va bien aparentemente, pero no pilla nada...
la única manera de que me funcione en XBMC es añadiendo trackers...
¿puede ser que xbmc bloquee los puertos de alguna manera?
a ver si a alguien se le ocurre algo, porque yo no se que pensar...