.torrents'i mıknatıs bağlantılarına dönüştürmenin bir yoluna ihtiyacım var. Python'da bunu yapmanın bir yolu olmalı. Bunu zaten yapan herhangi bir kütüphane var mı?Bir .torrent dosyası verildiğinde, python'da bir mıknatıs bağlantısı nasıl oluşturabilirim?
cevap
Bunu BitTorrent'den ayıklanan bencode modülüyle yapabilirsiniz. Bir mıknatıs karma hesaplanır
>>> import bencode
>>> torrent = open('ubuntu-12.04.1-desktop-i386.iso.torrent', 'r').read()
>>> metadata = bencode.bdecode(torrent)
: Böyle Python bunu ayrıştırmak olabilir, Sonra
http://releases.ubuntu.com/12.04/ubuntu-12.04.1-desktop-i386.iso.torrent
:
Size bir örnek göstermek gerekirse, ben buradan Ubuntu bir sel ISO indirilen torrent meta verilerinin yalnızca "bilgi" bölümünden ve sonra base32'de kodlanmıştır, şu şekilde:
Sen here bakarak bu doğru olduğundan emin olun ve siz mıknatıs link göreceksiniz:
magnet:?xt=urn:btih:CT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6
Eğer mıknatıs URI bazı ekstra parametreleri doldurmak isterseniz:
>>> params = {'xt': 'urn:btih:%s' % b32hash,
... 'dn': metadata['info']['name'],
... 'tr': metadata['announce'],
... 'xl': metadata['info']['length']}
>>> import urllib
>>> paramstr = urllib.urlencode(params)
>>> magneturi = 'magnet:?%s' % paramstr
>>> magneturi
'magnet:?dn=ubuntu-12.04.1-desktop-i386.iso&tr=http%3A%2F%2Ftorrent.ubuntu.com%3A6969%2Fannounce&xl=729067520&xt=urn%3Abtih%3ACT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6'
Çalışıyor, şimdi bir sorum var. Mıknatıs bağlantılarının hrefine örnek olarak korsanbayta bakarsam, şu şekilde görünürler: mıknatıs:? Xt = urn: btih: bbb6db69965af769f664b6636e7914f8735141b3 & dn = Ubuntu-12.04-desktop-i386.iso & tr = udp% 3A% 2F% 2Ftracker. openbittorrent.com% 3A80 & tr = udp% 3A% 2F% 2Ftracker.publicbt.com% 3A80 & tr = udp% 3A% 2F% 2Ftracker.istole.it% 3A6969 & tr = udp% 3A% 2F% 2Ftracker.ccc.de% 3A80 Ne nedir? kullanılan "udp" parametreleri nelerdir? –
Bu bir izleyici URI'sıdır: http://en.wikipedia.org/wiki/Magnet_URI_scheme#Parameters – jterrace
Özellikle bir UDP izleyicisine: http://en.wikipedia.org/wiki/UDP_tracker – jterrace
- 1. Bir torrent
- 2. Saf python'dan nasıl bir yaml dosyası oluşturabilirim?
- 3. Bir başlık dosyası verildiğinde boş tanımlar nasıl oluşturulur
- 4. Knockout javascript tablosunda nasıl bir metin bağlantısı oluşturabilirim?
- 5. node.js'de nasıl rss dosyası oluşturabilirim?
- 6. Diskte yerinde bir numpy .npy dosyası nasıl oluşturabilirim?
- 7. MySQL Workbench'deki şemadan nasıl bir SQL komut dosyası oluşturabilirim?
- 8. Python'daki piksel değerleri listesinden nasıl bir PNG resim dosyası oluşturabilirim?
- 9. Bir veritabanı bağlantısı olmadan bir komut dosyası açtığında
- 10. Bir belge verildiğinde, ilgili bir parçacık seçin
- 11. Bir rpm paket adı verildiğinde,
- 12. Uzak ve yerel aynı sunucu olan bir Veritabanı Bağlantısı nasıl oluşturabilirim?
- 13. Javadocs için dağıtılabilir bir kavanoz nasıl oluşturabilirim?
- 14. Bir ObjectSet örneğini nasıl oluşturabilirim?
- 15. Rastgele bir yol nasıl oluşturabilirim?
- 16. Bir Görüntüde Katman nasıl oluşturabilirim?
- 17. Yeni bir HttpContext nasıl oluşturabilirim?
- 18. Bir Mailer Observer'ı nasıl oluşturabilirim?
- 19. MySQL'de nasıl bir görünüm oluşturabilirim?
- 20. Pandalarda nasıl bir sütun oluşturabilirim?
- 21. Django'da indirilebilir pdf dosyası bağlantısı
- 22. Nasıl bir Çözüm Geniş Bağlantı Dizesi oluşturabilirim
- 23. Nümerik dizi veya pandalarla pythonda rutini sadeleştirme
- 24. Açık kaynak torrent istemcisi C#
- 25. C++ için Torrent Kitaplığı, Windows
- 26. Docker ile bir mysql db nasıl oluşturabilirim?
- 27. Ubuntu'da nasıl bir genel HTML klasörü oluşturabilirim?
- 28. Django uygulamasından nasıl bir tekerlek oluşturabilirim?
- 29. Bir Paperclip dosyası verildiğinde, url dostu olması için dosya adının nasıl temizlenir?
- 30. Bir AndroidTV'ye ADB bağlantısı
bir yoktur python3 için yaklaşım: pip install magneturi; ithalat magneturi; magneturi.from_torrent_file ('xx.torrent') –