{"id":15148366,"url":"https://github.com/blocklistproject/lists","last_synced_at":"2026-04-06T08:05:20.799Z","repository":{"id":37775168,"uuid":"270386883","full_name":"blocklistproject/Lists","owner":"blocklistproject","description":"Primary Block Lists","archived":false,"fork":false,"pushed_at":"2026-01-19T06:16:38.000Z","size":4273072,"stargazers_count":4554,"open_issues_count":308,"forks_count":390,"subscribers_count":83,"default_branch":"master","last_synced_at":"2026-01-19T15:09:45.214Z","etag":null,"topics":["adblock","adblock-list","blocklist","pi-hole-blocklists","pi-hole-lists","pihole","pihole-adblocker-list","pihole-blocklists"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blocklistproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"cryptogap","patreon":"theblocklistproject","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-06-07T17:54:28.000Z","updated_at":"2026-01-18T17:34:19.000Z","dependencies_parsed_at":"2025-10-23T02:24:08.247Z","dependency_job_id":"d1dd6741-70c8-4785-a97e-1afe2f340848","html_url":"https://github.com/blocklistproject/Lists","commit_stats":{"total_commits":1106,"total_committers":80,"mean_commits":13.825,"dds":0.7142857142857143,"last_synced_commit":"d28966e989adedba256760e68bc710b184810a79"},"previous_names":[],"tags_count":221,"template":false,"template_full_name":null,"purl":"pkg:github/blocklistproject/Lists","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklistproject%2FLists","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklistproject%2FLists/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklistproject%2FLists/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklistproject%2FLists/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blocklistproject","download_url":"https://codeload.github.com/blocklistproject/Lists/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blocklistproject%2FLists/sbom","scorecard":{"id":243767,"data":{"date":"2025-08-11","repo":{"name":"github.com/blocklistproject/Lists","commit":"5fb69c925afa02ff7745c868f88737a0a5739420"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Maintained","score":10,"reason":"19 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 2/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/aggregate.yml:1","Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Warn: no topLevel permission defined: .github/workflows/run-automations.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: The Unlicense: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/aggregate.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/aggregate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/aggregate.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/aggregate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/aggregate.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/aggregate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/aggregate.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/aggregate.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/aggregate.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/aggregate.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/lint.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/run-automations.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/run-automations.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/run-automations.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/run-automations.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/run-automations.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/blocklistproject/Lists/run-automations.yml/master?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-17T07:08:09.225Z","repository_id":37775168,"created_at":"2025-08-17T07:08:09.225Z","updated_at":"2025-08-17T07:08:09.225Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28770055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T07:45:00.504Z","status":"ssl_error","status_checked_at":"2026-01-26T07:45:00.070Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adblock","adblock-list","blocklist","pi-hole-blocklists","pi-hole-lists","pihole","pihole-adblocker-list","pihole-blocklists"],"created_at":"2024-09-26T13:03:20.808Z","updated_at":"2026-01-26T08:02:55.297Z","avatar_url":"https://github.com/blocklistproject.png","language":"Python","funding_links":["https://github.com/sponsors/cryptogap","https://patreon.com/theblocklistproject","https://ko-fi.com/P5P521OPP","https://www.patreon.com/bePatron?u=8892646"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.githubusercontent.com/blocklistproject/Lists/master/img/logo.webp\" height=\"150px\"/\u003e  \n\n# The Block List Project\n\n[![GitHub issues](https://img.shields.io/github/issues/blocklistproject/lists)](https://github.com/blocklistproject/Lists/issues)\n[![GitHub closed issues](https://badgen.net/github/closed-issues/blocklistproject/Lists?color=green)](https://github.com/blocklistproject/Lists/issues?q=is%3Aissue+is%3Aclosed)\n[![GitHub contributors](https://img.shields.io/github/contributors/blocklistproject/lists)](https://github.com/blocklistproject/Lists/graphs/contributors)\n![GitHub repo size](https://img.shields.io/github/repo-size/blocklistproject/lists)\n![GitHub](https://img.shields.io/github/license/blocklistproject/lists?color=blue)\n![GitHub Maintained](https://img.shields.io/badge/Open%20Source-Yes-green)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/y/blocklistproject/lists)\n![GitHub last commit](https://img.shields.io/github/last-commit/blocklistproject/lists)\n![GitHub Maintained](https://img.shields.io/badge/maintained-yes-green)\n[![ko-fi](https://badgen.net/badge/Support%20Us/Ko-Fi?color=orange)](https://ko-fi.com/P5P521OPP)\n[![patreon](https://badgen.net/badge/Support%20Us/Patreon?color=red)](https://www.patreon.com/bePatron?u=8892646)\n\n\u0026nbsp;\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.patreon.com/bePatron?u=8892646\"\u003e\u003cimg src=\"https://i0.wp.com/thelemicunion.com/wp-content/uploads/2018/07/Patreon-Support-Button.png?w=640\u0026ssl=1\" width=250\u003e\u003c/a\u003e\n\u003ca href=\"https://discord.com/invite/x9KeVQggkc\"\u003e\u003cimg src=\"https://discord.com/assets/ff41b628a47ef3141164bfedb04fb220.png\" width=250 /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u0026nbsp;\n\n## Table of Contents\n\n- [About](#about)\n- [What's New in v2.0](#whats-new-in-v20)\n- [Quick Start](#quick-start)\n- [Available Lists](#available-lists)\n- [Formats](#formats)\n- [Contributing](#contributing)\n- [For Developers](#for-developers)\n- [License](#license)\n\n\u0026nbsp;\n\n## About\n\nThe Block List Project provides curated domain blocklists for various categories of unwanted content. Our lists are designed to give you control over what gets blocked, rather than an all-or-nothing approach.\n\nAll lists are:\n- ✅ **Free and open source** — always will be\n- ✅ **Regularly updated** — automated builds on every change\n- ✅ **Available in multiple formats** — Pi-hole, AdGuard, dnsmasq, and more\n- ✅ **Community maintained** — submit requests via GitHub Issues\n\n\u0026nbsp;\n\n## What's New in v2.0\n\nWe've completely rebuilt the project infrastructure from the ground up. After 6 months of planning, we're excited to share what's changed.\n\n### Why We Rewrote Everything\n\nThe old system worked, but it was held together with duct tape. We had a mix of JavaScript and Python scripts that nobody wanted to touch, inconsistent build processes, and no automated testing. When bugs appeared, fixing one thing broke another.\n\nWe needed something maintainable — not just for us, but for anyone who wants to contribute.\n\n### What Changed\n\n**For Users:** Nothing breaks! All your existing URLs continue to work. Same lists, same formats, same locations. We rebuilt the engine without changing the car.\n\n**For Contributors:** \n- New structured issue templates make it easier to request additions or removals\n- Our triage bot automatically checks if a domain already exists in our lists\n- Pull requests now get validated automatically — no more waiting for a human to catch simple errors\n\n**Under the Hood:**\n- Replaced 7 JavaScript scripts with a single Python codebase\n- Added 151 automated tests (yes, really)\n- Config-driven architecture — all list definitions live in `config/lists.yml`\n- Proper domain validation catches invalid entries before they ship\n- TLD verification ensures we don't accidentally block legitimate domains\n- Critical domain protection prevents catastrophic mistakes (no more accidentally blocking google.com)\n\n### The Technical Bits\n\nIf you're curious about the architecture:\n\n```\nOld System:              New System:\n─────────────            ─────────────\n7 JS scripts             1 Python package\n0 tests                  151 tests\nManual validation        Automated validation\nAd-hoc builds            CI/CD pipeline\nMixed formats            Config-driven formats\n```\n\nThe new build system runs `pytest` on every change, validates domain syntax, checks TLDs against the public suffix list, and generates all four output formats automatically. Everything flows through a single `build.py` CLI.\n\nWe wrote about the full rationale in our [archived optimization document](docs/Optimize.md) if you want the deep dive.\n\n\u0026nbsp;\n\n## Quick Start\n\n### Pi-hole\n\n1. Copy the link for your desired list from the [Available Lists](#available-lists) section\n2. Go to **Group Management** → **Adlists** → Paste URL → **Add**\n3. Go to **Tools** → **Update Gravity**\n\n### AdGuard Home\n\n1. Copy the AdGuard format link for your desired list\n2. Go to **Filters** → **DNS Blocklists** → **Add blocklist** → **Add a custom list**\n3. Paste the URL and click **Save**\n\n### Other DNS Blockers\n\nUse the appropriate format for your software:\n- **Hosts file format**: Use the \"Original\" links\n- **Domain-only format**: Use the \"No IP\" links  \n- **dnsmasq**: Use the \"DNSMASQ\" links\n- **AdGuard/AdBlock**: Use the \"AdGuard\" links\n\n\u0026nbsp;\n\n## Available Lists\n\n### Main Lists\n\n| List | Original | No IP | DNSMASQ | AdGuard | Description |\n|------|----------|-------|---------|---------|-------------|\n| Abuse | [Link](https://blocklistproject.github.io/Lists/abuse.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/abuse-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/abuse-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/abuse-ags.txt) | Deceptive/abusive sites |\n| Ads | [Link](https://blocklistproject.github.io/Lists/ads.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/ads-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/ads-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/ads-ags.txt) | Ad servers |\n| Crypto | [Link](https://blocklistproject.github.io/Lists/crypto.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/crypto-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/crypto-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/crypto-ags.txt) | Cryptojacking/crypto scams |\n| Drugs | [Link](https://blocklistproject.github.io/Lists/drugs.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/drugs-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/drugs-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/drugs-ags.txt) | Illegal drug sites |\n| Facebook | [Link](https://blocklistproject.github.io/Lists/facebook.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/facebook-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/facebook-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/facebook-ags.txt) | Facebook/Meta services |\n| Fraud | [Link](https://blocklistproject.github.io/Lists/fraud.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/fraud-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/fraud-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/fraud-ags.txt) | Fraud sites |\n| Gambling | [Link](https://blocklistproject.github.io/Lists/gambling.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/gambling-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/gambling-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/gambling-ags.txt) | Gambling sites |\n| Malware | [Link](https://blocklistproject.github.io/Lists/malware.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/malware-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/malware-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/malware-ags.txt) | Malware hosts |\n| Phishing | [Link](https://blocklistproject.github.io/Lists/phishing.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/phishing-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/phishing-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/phishing-ags.txt) | Phishing sites |\n| Piracy | [Link](https://blocklistproject.github.io/Lists/piracy.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/piracy-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/piracy-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/piracy-ags.txt) | Piracy/illegal downloads |\n| Porn | [Link](https://blocklistproject.github.io/Lists/porn.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/porn-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/porn-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/porn-ags.txt) | Adult content |\n| Ransomware | [Link](https://blocklistproject.github.io/Lists/ransomware.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/ransomware-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/ransomware-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/ransomware-ags.txt) | Ransomware C2/distribution |\n| Redirect | [Link](https://blocklistproject.github.io/Lists/redirect.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/redirect-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/redirect-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/redirect-ags.txt) | Malicious redirects |\n| Scam | [Link](https://blocklistproject.github.io/Lists/scam.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/scam-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/scam-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/scam-ags.txt) | Scam sites |\n| TikTok | [Link](https://blocklistproject.github.io/Lists/tiktok.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/tiktok-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/tiktok-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/tiktok-ags.txt) | TikTok domains |\n| Torrent | [Link](https://blocklistproject.github.io/Lists/torrent.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/torrent-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/torrent-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/torrent-ags.txt) | Torrent sites |\n| Tracking | [Link](https://blocklistproject.github.io/Lists/tracking.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/tracking-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/tracking-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/tracking-ags.txt) | Tracking/analytics |\n| Twitter | [Link](https://blocklistproject.github.io/Lists/twitter.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/twitter-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/twitter-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/twitter-ags.txt) | Twitter/X domains |\n\n### Beta Lists\n\n| List | Original | No IP | DNSMASQ | AdGuard | Description |\n|------|----------|-------|---------|---------|-------------|\n| Basic | [Link](https://blocklistproject.github.io/Lists/basic.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/basic-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/basic-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/basic-ags.txt) | Starter protection list |\n| Smart TV | [Link](https://blocklistproject.github.io/Lists/smart-tv.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/smart-tv-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/smart-tv-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/smart-tv-ags.txt) | Smart TV telemetry |\n| Vaping | [Link](https://blocklistproject.github.io/Lists/vaping.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/vaping-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/vaping-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/vaping-ags.txt) | Vaping/e-cigarette sites |\n| WhatsApp | [Link](https://blocklistproject.github.io/Lists/whatsapp.txt) | [Link](https://blocklistproject.github.io/Lists/alt-version/whatsapp-nl.txt) | [Link](https://blocklistproject.github.io/Lists/dnsmasq-version/whatsapp-dnsmasq.txt) | [Link](https://blocklistproject.github.io/Lists/adguard/whatsapp-ags.txt) | WhatsApp domains |\n\n\u0026nbsp;\n\n## Formats\n\n| Format | Use Case | Example |\n|--------|----------|---------|\n| **Original (hosts)** | Pi-hole, hosts file | `0.0.0.0 example.com` |\n| **No IP (domains)** | Some routers, simple lists | `example.com` |\n| **DNSMASQ** | dnsmasq DNS server | `server=/example.com/` |\n| **AdGuard** | AdGuard Home, browser extensions | `\\|\\|example.com^` |\n\n\u0026nbsp;\n\n## Contributing\n\nWe welcome contributions! Here's how you can help:\n\n### Request a Domain Addition\n1. [Open an Add Request](https://github.com/blocklistproject/Lists/issues/new?template=add-request.yml)\n2. Fill out the form with the domain and evidence\n3. Our bot will check if it's already listed\n4. A maintainer will review and add it\n\n### Report a False Positive\n1. [Open a Remove Request](https://github.com/blocklistproject/Lists/issues/new?template=remove-request.yml)\n2. Explain why the domain should be unblocked\n3. A maintainer will review and remove it\n\n### Direct Contributions\n1. Fork the repository\n2. Edit the appropriate `.txt` file in the root directory\n3. Submit a Pull Request\n4. Our CI will validate the changes automatically\n\n\u0026nbsp;\n\n## For Developers\n\n### Building Locally\n\n```bash\n# Clone the repository\ngit clone https://github.com/blocklistproject/Lists.git\ncd Lists\n\n# Create virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # or .venv\\Scripts\\activate on Windows\n\n# Install dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Build all lists\npython build.py\n\n# Build specific list\npython build.py --list ads\n\n# Dry run (preview without writing)\npython build.py --dry-run --verbose\n```\n\n### CLI Commands\n\n```bash\npython build.py --help          # Show all options\npython build.py list            # List available blocklists\npython build.py stats           # Show domain counts\npython build.py verify          # Verify output consistency\npython build.py --validate      # Build with validation\n```\n\n### Project Structure\n\n```\nLists/\n├── *.txt                 # Source blocklists (hosts format)\n├── adguard/              # AdGuard format output\n├── alt-version/          # Domain-only format output\n├── dnsmasq-version/      # dnsmasq format output\n├── config/\n│   └── lists.yml         # List definitions and settings\n├── src/                  # Python source code\n│   ├── config.py         # Configuration loader\n│   ├── normalize.py      # Format parsing\n│   ├── merge.py          # Deduplication\n│   ├── validate.py       # Domain validation\n│   ├── format.py         # Output formatters\n│   └── pipeline.py       # Build orchestration\n├── tests/                # Test suite\n└── build.py              # CLI entry point\n```\n\n\u0026nbsp;\n\n## Sponsors\n\nSpecial thank you to [Cloud 4 SURE](https://www.cloud4sure.net) for their generous donation to help cover infrastructure costs.\n\n\u0026nbsp;\n\n## License\n\nThis project is licensed under the [Unlicense](https://github.com/blocklistproject/Lists/blob/master/LICENSE) — free and open source, no restrictions.\n\n\u0026nbsp;\n\n\u003csup\u003eThese files are provided \"AS IS\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, arising from, out of or in connection with the files or the use of the files.\u003c/sup\u003e\n\n\u003csub\u003eAny and all trademarks are the property of their respective owners.\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocklistproject%2Flists","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblocklistproject%2Flists","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblocklistproject%2Flists/lists"}