Skip to main content

Add your description here

Project description

Libgen Seedtools

A python utility to fetch and seed a common dataset. Designed to help individuals strengthen the Library Genesis collection, but written to be generally useful for mirroring between networks.

Install

pipx install libgen-seedtools
# or
pip3 install libgen-seedtools

Why this was made

  • The libgen librarians and maintainers don't provide enough guidance or strategy for regular people to help.
  • Without a unified strategy, seeding is random and inefficient, clustering at the ends.
  • It's tedious and costly to click through and import individual torrents.
  • Not everyone has hundreds of terrabytes of disk and bandwidth to spare.

This tool will allow all users to act together to strengthen the network under the same strategy, whether they have 20TB of disk or 200GB of disk. Using libgen-seedtools will ensure you get the most bang for your buck.

It also lowers the tedious burden of organization. Start seeding in just a few minutes.

Features

  • filter by minimum seeders: Prioritize the files that need seeding the most.
  • Set max disk usage: Set a limit on disk usage

Usage

# generate configuration
libgen-seedtools generate-config

# fetch and deploy torrent files
libgen-seedtools fetch

Output will look something like this

~$ libgen-seedtools fetch
Found 5932 torrent files (130.47 TB) needing seeders
  Seeders   MEAN=1.725724881995954 MEDIAN=2.0
  DHT Peers MEAN=4.369521240728253 MEDIAN=4.0
  Size      MEAN=21.99 GB MEDIAN=9.74 GB
Searching for criteria:
  max_disk_usage: 2TB
  min_seeders:    1
  max_seeders:    3
  types:          ['fiction', 'books']
Found 173 matches totaling 2 TB
Fetching torrent files...  [####################################]  100%
Done

The end goal

Provide a manifest file describing .torrent files. This tool will iterate the list, attempt to retreive the data from one network, then once it is successfully fetched, propogate it to the other.

It is just a command-line script, not a service, so the user must initiate each "round" of checks. If a torrent is added to transmission today and takes 4 hours to dowload, you'll have to come back 4 hours later and run another "round" to collect the newly completed data and pin it to your ipfs node.

Ideally a scheduler like cron or systemd will run a round of checks at intervals

If users all attempt to seed the most-needed files first, eventually the network will be seeded bottom-up.

Prerequisites

  • A transmission torrent server
  • * An ipfs server

If you aren't already running these, you can use the included docker-compose. If you run these services on your own, you MUST have a shared data volume accessible from both services.

See also

Credit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lgst-0.5.10.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lgst-0.5.10-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file lgst-0.5.10.tar.gz.

File metadata

  • Download URL: lgst-0.5.10.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.26

File hashes

Hashes for lgst-0.5.10.tar.gz
Algorithm Hash digest
SHA256 b4d326cd26169a47b5dadf1d7c11f678717a70f59019c46665142ac90ee53c70
MD5 8040ad7e99f4b7e943886c051d04a530
BLAKE2b-256 fa7881bd5f82f0545e5f54992cc8fa7dfa4addf16c9a809a0c185427f65c3070

See more details on using hashes here.

File details

Details for the file lgst-0.5.10-py3-none-any.whl.

File metadata

  • Download URL: lgst-0.5.10-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.26

File hashes

Hashes for lgst-0.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 798e7b4a65100240d04fbf35ffd7030f2e99e57955baf30fe457f119fa08e054
MD5 a98cb7a9d9a1a751392081c180bf96f9
BLAKE2b-256 208efd576686ea3ac128f1bf3c0eb7c700ce987411f602ea85c4e0a892a37365

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page