/torrent-tracker-scraper

A UDP torrent tracker scraper library written in Python 3

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

Torrent Tracker Scraper

A UDP torrent tracker scraper written in Python 3

PyPI pyversions PyPI version License: LGPL v3

Installation

pipenv install torrent-tracker-scraper
pipenv shell

Usage

Pass in a list of infohashes

from torrent_tracker_scraper import scraper

scraper = scraper.Scraper(
    infohashes=[
        "82026E5C56F0AEACEDCE2D7BC2074A644BC50990",
        "04D9A2D3FAEA111356519A0E0775E5EAEE9C944A",
    ]
)
results = scraper.scrape()
print(results)

[
    ...,
    {
        'tracker': 'udp://explodie.org:6969',
        'results': [
            {
                'infohash': '82026E5C56F0AEACEDCE2D7BC2074A644BC50990',
                'seeders': 246,
                'completed': 0,
                'leechers': 36
            },
            {
                'infohash': '04D9A2D3FAEA111356519A0E0775E5EAEE9C944A',
                'seeders': 7,
                'completed': 0,
                'leechers': 27
            }
        ]
    },
    {
        'tracker': 'udp//:bt-trace.adgk.net:6969',
        'results': [
            {
                 'infohash': '82026E5C56F0AEACEDCE2D7BC2074A644BC50990', 'error': 'Could not get stats for infohash [bt-trace.adgk.net:6969]'
            },
            {
                 'infohash': '04D9A2D3FAEA111356519A0E0775E5EAEE9C944A', 'error': 'Could not get stats for infohash [bt-trace.adgk.net:6969]'
            }
        ],
        'error': None
    }
    ...

Get your scrapped information

Pass in a list of trackers

from torrent_tracker_scraper import scraper

scraper = scraper.Scraper(
    trackers=["udp://explodie.org:6969/annouce"],
    infohashes=[
        "82026E5C56F0AEACEDCE2D7BC2074A644BC50990",
        "04D9A2D3FAEA111356519A0E0775E5EAEE9C944A",
    ],
)
results = scraper.scrape()
print(results)

[
    ...,
    {
        'tracker': 'udp://explodie.org:6969',
        'results': [
            {
                'infohash': '82026E5C56F0AEACEDCE2D7BC2074A644BC50990',
                'seeders': 246,
                'completed': 0,
                'leechers': 36
            },
            {
                'infohash': '04D9A2D3FAEA111356519A0E0775E5EAEE9C944A',
                'seeders': 7,
                'completed': 0,
                'leechers': 27
            }
        ]
    },
    ...

Testing

pipenv install --dev
pipenv run pytest

Help/Contributing

  1. Install dev dependencies pipenv install --dev

  2. Make your changes

  3. Make sure your tests pass pipenv run pytest

  4. Create an issue here

    https://github.com/project-mk-ultra/torrent-tracker-scraper/issues.

Contributors (in alphabetical order)

  1. https://github.com/49e94b8f256530dc0d41f740dfe8a4c1
  2. https://github.com/dessalines
  3. https://github.com/zawi99