Skip to content

Latest commit

Β 

History

433 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Automatic Trackers Banner

πŸš€ Automatic Trackers

A frequently updated, automatically sanitized, blacklist-filtered list of BitTorrent Trackers β€” rebuilt every 6 hours from 95+ community sources.

Update Trackers Tests Security Scorecard Trackers Status License: MIT

Read the Documentation β€’ Report a Bug β€’ Request a Feature β€’ Discussions


🌟 Why This List?

Finding reliable and active BitTorrent trackers is a hassle: public lists are often stale, duplicated, or polluted with dead and malicious trackers. This repository solves that with a fully automated GitHub Actions pipeline that fetches, sanitizes, blacklist-filters, and publishes fresh tracker lists β€” with zero human intervention.

  • ⏱️ Always Fresh: Lists are rebuilt every 6 hours from 95+ sources (full list).
  • 🚫 Blacklist-Filtered: Known-bad trackers (dead, malicious, flooded) are actively excluded via blacklist.txt, built from dedicated blocklist sources.
  • πŸ›‘οΈ Deeply Sanitized: A multi-stage pipeline strips junk, normalizes URLs, removes duplicates, and drops private/localhost/reserved hosts.
  • πŸ’₯ Crash-Safe: Built-in guards abort any update where sources mass-fail, so the published lists are never wiped by a bad run.
  • πŸ”Œ API Ready: Developer-friendly JSON endpoints for seamless app integration.
  • πŸ” Verifiable: SHA-256 checksums on every update, Sigstore-signed releases, SBOM, and OpenSSF Scorecard monitoring.
  • 🐳 Docker Support: Run the exact same engine locally with Docker or plain bash.

πŸ“‹ Tracker Lists (Raw Links)

Add these raw links directly to your torrent client (qBittorrent, Transmission, aria2, etc.) to automatically fetch trackers:

  • πŸ”₯ All Trackers β€” The complete, sanitized, priority-sorted list.
  • πŸ“Ž Comma-Separated β€” Single line, comma-joined (aria2 / paste-friendly).
  • ⚑ UDP Trackers β€” Fast, low-overhead UDP trackers.
  • 🌐 HTTPS Trackers β€” Secure HTTPS-based trackers only.
  • 🟒 HTTP Trackers β€” HTTP-based trackers (legacy support).
  • πŸ•ΈοΈ WebSocket Trackers β€” WebTorrent-compatible ws:// / wss:// trackers.
  • 🚫 Blacklist β€” Known-bad trackers we exclude (do NOT add these to your client).

Legacy note: trackers.txt is an identical alias of all_trackers.txt, kept so old hotlinks never break.

🌍 CDN Mirror (jsDelivr) β€” faster in some regions, immune to GitHub rate limits
https://cdn.jsdelivr.net/gh/mrgusux/automatic-trackers@main/all_trackers.txt
https://cdn.jsdelivr.net/gh/mrgusux/automatic-trackers@main/udp.txt
https://cdn.jsdelivr.net/gh/mrgusux/automatic-trackers@main/https.txt
https://cdn.jsdelivr.net/gh/mrgusux/automatic-trackers@main/http.txt
https://cdn.jsdelivr.net/gh/mrgusux/automatic-trackers@main/ws.txt

πŸš€ Client Setup (Quick Start)

qBittorrent
  1. Open Tools β†’ Options β†’ BitTorrent
  2. Tick Automatically add these trackers to new downloads
  3. Paste this URL:
https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/all_trackers.txt

qBittorrent re-fetches the list automatically β€” set & forget. βœ…

aria2
# One-shot run with all trackers:
aria2c --bt-tracker="$(curl -fsSL https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/all_trackers_comma.txt)" <torrent-or-magnet>

Or keep a local copy auto-updated with cron:

0 6 * * * curl -fsSL https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/all_trackers_comma.txt -o ~/.aria2/trackers.txt
Transmission
# Add all trackers to an existing torrent (ID 1):
curl -fsSL https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/all_trackers.txt \
  | sed '/^$/d' \
  | xargs -I{} transmission-remote -t 1 -td {}

πŸ’» Developer API (Machine-Readable)

Building an app or tool? Pure JSON outputs are updated alongside the raw lists:

Endpoint Description
/api/trackers.json Complete tracker list as a JSON array + metadata
/api/stats.json Protocol breakdown, success rate, blacklist removals
/api/badge.json Shields.io endpoint for dynamic badges

Example β€” extract all UDP trackers with jq:

curl -fsSL https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/api/trackers.json \
  | jq -r '.trackers[] | select(startswith("udp://"))'

Embed the live tracker-count badge in your own project:

![Trackers](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/api/badge.json)

πŸ”„ Update Schedule & Manual Trigger

Trigger Schedule Details
Automated Every 6 hours (00:00, 06:00, 12:00, 18:00 UTC) Cron: 0 */6 * * *
Manual On-demand Actions β†’ Update Trackers β†’ Run workflow (supports force_fetch and debug_mode options)

Each run:

  • βœ… Fetches from 95+ reputable sources in parallel (with retries + cached fallback)
  • 🧹 Runs the full sanitization pipeline
  • 🚫 Excludes everything found in blacklist.txt (rebuilt from config/blacklist_sources.txt)
  • πŸ›‘οΈ Aborts safely if results fall below the minimum-count or drop-guard thresholds
  • πŸ“Š Generates categorized lists (UDP, HTTPS, HTTP, WebSocket) + JSON API + SHA256SUMS.txt
  • πŸ’Ύ Auto-commits only if data actually changed (idempotency hash check)

🐳 Run It Yourself

The whole engine is a single dependency-light bash script β€” scripts/update_trackers.sh. The exact same code runs in CI, Docker, and locally.

Local (no Docker)

git clone https://github.com/mrgusux/automatic-trackers.git
cd automatic-trackers

make dev     # check prerequisites (bash, curl, jq, ...)
make run     # run the aggregator β†’ lists written to repo root
make test    # run the bats test suite
make lint    # ShellCheck (rules in .shellcheckrc)

Docker (one-shot batch container)

# Run once - outputs land in ./output/ on your machine, then it exits:
docker compose up --build

# With tunables:
FORCE_FETCH=true DEBUG_MODE=true docker compose up --build

# Cleanup:
docker compose down
βš™οΈ All tunables (environment variables)
Variable Default Purpose
OUTPUT_DIR repo root Where output files are written
CACHE_DIR /tmp/tracker_cache Fetch fallback cache
MIN_TRACKER_COUNT 150 Abort if fewer trackers found
DROP_GUARD_PERCENT 60 Abort if list shrinks below N% of previous
MAX_PARALLEL_JOBS 8 Parallel fetch workers
RETRY_ATTEMPTS 3 Retries per source
TIMEOUT_SECONDS 15 Per-request max time
CONNECT_TIMEOUT 8 Per-request connect timeout
FORCE_FETCH false true = ignore cache fallback
DEBUG_MODE false Verbose debug output

πŸ“Š Data Quality Guarantees

The sanitization pipeline ensures:

  • βœ… No private IPs (RFC-1918: 10.x, 192.168.x, 172.16-31.x, link-local 169.254.x)
  • βœ… No localhost/loopback (127.x, 0.0.0.0, ::1)
  • βœ… No reserved/example hosts (example.com, .local, .onion, .internal)
  • βœ… Valid protocols only (udp, http, https, ws, wss)
  • βœ… No known-bad trackers (blacklist exclusion filtering)
  • βœ… Uniqueness enforced (full deduplication, normalized lowercase scheme+host)
  • βœ… No HTML/Cloudflare junk (intelligent response validation)
  • βœ… Clean encoding (BOM, CR, and control-character removal)

πŸ” Verify Your Downloads

Checksums β€” regenerated on every update:

curl -fsSLO https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/all_trackers.txt
curl -fsSLO https://raw.githubusercontent.com/mrgusux/automatic-trackers/main/SHA256SUMS.txt
sha256sum --check --ignore-missing SHA256SUMS.txt

Signatures β€” every release asset is keyless-signed with Sigstore Cosign:

cosign verify-blob \
  --signature all_trackers.txt.sig \
  --certificate all_trackers.txt.pem \
  --certificate-identity-regexp 'https://github.com/mrgusux/automatic-trackers/' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  all_trackers.txt

Releases also include a CycloneDX SBOM (bom.cdx.json) and RELEASE_SHA256SUMS.txt.

πŸ“ Project Structure

automatic-trackers/
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”‚   β”œβ”€β”€ update-trackers.yml      # Main 6-hourly aggregation (thin CI wrapper)
β”‚   β”‚   β”œβ”€β”€ test.yml                 # bats test suite runner
β”‚   β”‚   β”œβ”€β”€ lint.yml                 # ShellCheck + actionlint
β”‚   β”‚   β”œβ”€β”€ checksum.yml             # SHA256SUMS.txt generator
β”‚   β”‚   β”œβ”€β”€ release.yml              # Automated releases
β”‚   β”‚   β”œβ”€β”€ sign-artifacts.yml       # Sigstore keyless signing
β”‚   β”‚   β”œβ”€β”€ sbom.yml                 # CycloneDX SBOM generation
β”‚   β”‚   └── ...                      # scorecard, stale, labeler, discord alerts
β”‚   β”œβ”€β”€ labeler.yml                  # PR auto-labeling rules
β”‚   └── ISSUE_TEMPLATE/
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ sources.txt                  # All tracker source URLs (single source of truth)
β”‚   └── blacklist_sources.txt        # Known-bad tracker lists (exclusion only)
β”œβ”€β”€ scripts/
β”‚   └── update_trackers.sh           # The aggregation engine (CI + Docker + local)
β”œβ”€β”€ tests/
β”‚   └── tracker_test.bats            # Pipeline test suite
β”œβ”€β”€ api/                             # Auto-generated JSON endpoints
β”‚   β”œβ”€β”€ trackers.json                # All trackers as JSON array
β”‚   β”œβ”€β”€ stats.json                   # Statistics & metrics
β”‚   └── badge.json                   # Dynamic badge data
β”œβ”€β”€ docs/                            # GitHub Pages documentation
β”œβ”€β”€ all_trackers.txt                 # Master list (auto-committed)
β”œβ”€β”€ all_trackers_comma.txt           # Comma-separated format
β”œβ”€β”€ udp.txt / https.txt / http.txt / ws.txt   # Protocol-specific lists
β”œβ”€β”€ blacklist.txt                    # Active exclusion list (auto-built)
β”œβ”€β”€ SHA256SUMS.txt                   # Integrity checksums (auto-built)
β”œβ”€β”€ Dockerfile                       # Container runtime
β”œβ”€β”€ docker-compose.yml               # Local one-shot deployment
β”œβ”€β”€ Makefile                         # Build automation
β”œβ”€β”€ README.md                        # This file
└── SOURCES.md                       # Source documentation

🀝 Contributing

Contributions make the open source community an amazing place to learn, inspire, and create. Any contribution is greatly appreciated β€” you don't even need to write code:

  • 🌐 Propose a tracker source β†’ Feature Request (good source = public, plain-text, actively maintained)
  • πŸ› Report a bug β†’ Bug Report
  • πŸ’‘ Share an idea β†’ Discussions

For code contributions:

  1. Read our Code of Conduct and Contributing Guidelines.
  2. Fork the project and create your feature branch (git checkout -b feature/AmazingFeature).
  3. Set up hooks and verify locally: pre-commit install, then make lint test.
  4. Commit (git commit -m 'Add some AmazingFeature') and push.
  5. Open a Pull Request.

See also: Governance β€’ Maintainers β€’ Roadmap β€’ Security Policy β€’ Support

❓ FAQ

Why did a tracker I use disappear from the list?

Either its upstream sources dropped it, or it entered blacklist.txt (dead / malicious / flooded). If you believe it was removed wrongly, open a bug report.

Is adding more trackers safe?

Trackers are just peer-coordination servers β€” adding them is the same mechanism every torrent client uses. This project distributes only publicly available tracker URLs, never content. What you download remains your responsibility.

When was the list last updated?

Check the updated_at field in api/stats.json, or look at the latest commit on the main branch.

πŸ“œ License & Governance

Distributed under the MIT License. See LICENSE for more information. This project follows an open Governance Model for transparent decision-making.

πŸ™ Acknowledgments

This project aggregates data from 95+ open-source tracker repositories and live APIs. Special thanks to:


Crafted with ❀️ by the Open Source Community
Updated automatically every 6 hours via GitHub Actions β€’ If this saves you time, a ⭐ keeps it alive!

About

πŸš€ Ultimate Torrent Tracker Aggregator Pro Max - Architected by mrgusux. Automatically fetches, sanitizes, and updates from 98 top-tier sources every 6 hours.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages