Compare commits

..

No commits in common. "main" and "2.0" have entirely different histories.
main ... 2.0

18 changed files with 2218 additions and 3004 deletions

3
.gitignore vendored
View file

@ -1,4 +1,3 @@
docs/.vitepress/dist
docs/.vitepress/cache
node_modules
tbd.md
node_modules

View file

@ -1,33 +1,32 @@
### Adult Hosts
| **Service Name** | **AllDebrid** | **RealDebrid** | **TorBox** | **Deepbrid** | **Premiumize** | **Mega-Debrid** | **High-Way** | **LinkSnappy** | **Debrid-Link** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| Beeg | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Coomer | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Drtuber | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Eporner | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Hanime | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Hentai foundry | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Kemono | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Nhentai | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Pornhub | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Pornoxo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Redgifs | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Redtube | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Rule34 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Spankbang | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Stripchat | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Sunporno | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Xhamster | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Xnxx | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Xvideos | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Xxxymovies | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Youjizz | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Youporn | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Total = 22** | **12/22** | **2/22** | **20/22** | **1/22** | **1/22** | **1/22** | **0/22** | **0/22** | **0/22** |
| **Service Name** | **AllDebrid** | **TorBox** | **Premiumize** | **RealDebrid** | **Debrid-Link** | **LinkSnappy** | **Mega-Debrid** | **Deepbrid** | **High-Way** | **Offcloud** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **Beeg** | Yes | Yes | No | No | No | No | No | No | No | No |
| **Coomer** | No | Yes | No | No | No | No | No | No | No | No |
| **Drtuber** | Yes | Yes | Yes | No | No | No | No | No | No | No |
| **Eporner** | No | No | No | No | No | No | No | No | No | Yes |
| **Hanime** | No | Yes | No | No | No | No | No | No | No | No |
| **Hentai foundry** | No | Yes | No | No | No | No | No | No | No | No |
| **Kemono** | No | Yes | No | No | No | No | No | No | No | No |
| **Nhentai** | No | Yes | No | No | No | No | No | No | No | No |
| **Pornhub** | Yes | Yes | No | No | No | No | No | No | No | Yes |
| **Redgifs** | No | Yes | No | No | No | No | No | No | No | No |
| **Redtube** | Yes | Yes | No | Yes | No | No | No | Yes | No | Yes |
| **Rule34** | No | Yes | No | No | No | No | No | No | No | No |
| **Spankbang** | Yes | Yes | No | No | No | No | No | No | No | Yes |
| **Stripchat** | No | Yes | No | No | No | No | No | No | No | No |
| **Sunporno** | No | Yes | No | No | No | No | Yes | No | No | No |
| **Xhamster** | Yes | Yes | No | No | No | No | No | No | No | Yes |
| **Xnxx** | Yes | Yes | No | No | No | No | No | No | No | No |
| **Xvideos** | Yes | Yes | No | No | No | No | No | No | No | Yes |
| **Xxxymovies** | Yes | Yes | No | No | No | No | No | No | No | No |
| **Youjizz** | Yes | Yes | No | No | No | No | No | No | No | Yes |
| **Youporn** | No | Yes | No | Yes | No | No | No | No | No | Yes |
| **Total = 20** | **10/20** | **20/20** | **1/20** | **2/20** | **0/20** | **0/20** | **1/20** | **1/20** | **0/20** |
> **Last updated: March 9, 2026**
> Last Update: September 19, 2025
<div align="center">

21
LICENSE
View file

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 Fynks
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS 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, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

1051
README.md

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
Contact: https://github.com/fynks/debrid-services-comparison/issues
Expires: 2026-12-31T23:59:59.000Z
Preferred-Languages: en
Canonical: https://debridcompare.pages.dev/.well-known/security.txt
Canonical: https://debridcompare.xyz/.well-known/security.txt

1216
dist/css/styles.css vendored

File diff suppressed because it is too large Load diff

View file

@ -1,99 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 930" style="max-width: 800px;">
<defs>
<style>
/* Light mode (default) */
.box { fill: #fff; stroke: #333; stroke-width: 2; }
.diamond { fill: #fff; stroke: #333; stroke-width: 2; }
.text { font-family: Arial, sans-serif; font-size: 14px; text-anchor: middle; fill: #333; }
.arrow { stroke: #333; stroke-width: 2; fill: none; marker-end: url(#arrowhead-light); }
.label { font-family: Arial, sans-serif; font-size: 12px; text-anchor: middle; fill: #333; }
#arrowhead-light { display: block; }
#arrowhead-dark { display: none; }
/* Dark mode */
@media (prefers-color-scheme: dark) {
.box { fill: #1c1c1c; stroke: #8b949e; stroke-width: 2; }
.diamond { fill: #1c1c1c; stroke: #8b949e; stroke-width: 2; }
.text { fill: #c9d1d9; }
.arrow { stroke: #8b949e; marker-end: url(#arrowhead-dark); }
.label { fill: #8b949e; }
#arrowhead-light { display: none; }
#arrowhead-dark { display: block; }
}
</style>
<marker id="arrowhead-light" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto">
<polygon points="0 0, 10 3, 0 6" fill="#333" />
</marker>
<marker id="arrowhead-dark" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto">
<polygon points="0 0, 10 3, 0 6" fill="#8b949e" />
</marker>
</defs>
<!-- Node A -->
<rect x="250" y="20" width="300" height="60" rx="5" class="box"/>
<text x="400" y="55" class="text">User provides file link or torrent</text>
<!-- Arrow A to B -->
<path d="M 400 80 L 400 130" class="arrow"/>
<!-- Node B (Diamond) -->
<path d="M 400 130 L 500 180 L 400 230 L 300 180 Z" class="diamond"/>
<text x="400" y="180" class="text">File on supported</text>
<text x="400" y="195" class="text">host?</text>
<!-- Arrow B to C -->
<path d="M 400 230 L 400 270" class="arrow"/>
<text x="430" y="255" class="label">Yes</text>
<!-- Node C -->
<rect x="275" y="270" width="250" height="60" rx="5" class="box"/>
<text x="400" y="305" class="text">Debrid service fetches file</text>
<!-- Arrow C to D -->
<path d="M 400 330 L 400 370" class="arrow"/>
<!-- Node D -->
<rect x="250" y="370" width="300" height="60" rx="5" class="box"/>
<text x="400" y="405" class="text">File cached on high-speed servers</text>
<!-- Arrow D to E -->
<path d="M 400 430 L 400 480" class="arrow"/>
<!-- Node E (Diamond) -->
<path d="M 400 480 L 500 530 L 400 580 L 300 530 Z" class="diamond"/>
<text x="400" y="530" class="text">Stream or</text>
<text x="400" y="545" class="text">download?</text>
<!-- Arrow E to F (Stream) -->
<path d="M 300 530 L 150 530 L 150 650" class="arrow"/>
<text x="200" y="525" class="label">Stream</text>
<!-- Arrow E to G (Download) -->
<path d="M 500 530 L 650 530 L 650 650" class="arrow"/>
<text x="600" y="525" class="label">Download</text>
<!-- Node F -->
<rect x="25" y="650" width="250" height="60" rx="5" class="box"/>
<text x="150" y="685" class="text">Direct streaming link provided</text>
<!-- Node G -->
<rect x="525" y="650" width="250" height="60" rx="5" class="box"/>
<text x="650" y="685" class="text">High-speed download link provided</text>
<!-- Arrow F to H -->
<path d="M 150 710 L 150 750 L 400 750" class="arrow"/>
<!-- Arrow G to H -->
<path d="M 650 710 L 650 750 L 400 750" class="arrow"/>
<!-- Node H -->
<rect x="275" y="750" width="250" height="60" rx="5" class="box"/>
<text x="400" y="785" class="text">Access file instantly</text>
<!-- Arrow H to I -->
<path d="M 400 810 L 400 850" class="arrow"/>
<!-- Node I -->
<rect x="250" y="850" width="300" height="60" rx="5" class="box"/>
<text x="400" y="885" class="text">File cached for 24-72 hours</text>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

BIN
dist/images/og.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 KiB

After

Width:  |  Height:  |  Size: 355 KiB

1166
dist/index.html vendored

File diff suppressed because it is too large Load diff

1452
dist/js/app.js vendored

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
{"Beeg":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Coomer":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Drtuber":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"✅","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Eporner":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"❌","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Hanime":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Hentai foundry":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Kemono":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Nhentai":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Pornhub":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Pornoxo":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"❌","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Redgifs":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Redtube":{"AllDebrid":"✅","RealDebrid":"✅","TorBox":"✅","Deepbrid":"✅","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Rule34":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Spankbang":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Stripchat":{"AllDebrid":"❌","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Sunporno":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"✅","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Xhamster":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Xnxx":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Xvideos":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Xxxymovies":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Youjizz":{"AllDebrid":"✅","RealDebrid":"❌","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"},"Youporn":{"AllDebrid":"❌","RealDebrid":"✅","TorBox":"✅","Deepbrid":"❌","Premiumize":"❌","Mega-Debrid":"❌","High-Way":"❌","LinkSnappy":"❌","Debrid-Link":"❌"}}
{"Beeg":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Coomer":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Drtuber":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"✅","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Eporner":{"AllDebrid":"❌","TorBox":"❌","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Hanime":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Hentai foundry":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Kemono":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Nhentai":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Pornhub":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Redgifs":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Redtube":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"✅","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"✅","High-Way":"❌","Offcloud":"✅"},"Rule34":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Spankbang":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Stripchat":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Sunporno":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"✅","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Xhamster":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Xnxx":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Xvideos":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Xxxymovies":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"❌"},"Youjizz":{"AllDebrid":"✅","TorBox":"✅","Premiumize":"❌","Real-Debrid":"❌","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"},"Youporn":{"AllDebrid":"❌","TorBox":"✅","Premiumize":"❌","Real-Debrid":"✅","Debrid-Link":"❌","LinkSnappy":"❌","Mega-Debrid":"❌","Deepbrid":"❌","High-Way":"❌","Offcloud":"✅"}}

File diff suppressed because one or more lines are too long

25
dist/manifest.json vendored
View file

@ -1,25 +0,0 @@
{
"name": "Debrid Compare",
"short_name": "DSC",
"start_url": "https://debridcompare.pages.dev",
"display": "standalone",
"description": "Compare leading debrid / multi-hoster services for pricing, host coverage, policies & tools.",
"lang": "en",
"dir": "auto",
"theme_color": "#ffffff",
"background_color": "#ffffff",
"orientation": "any",
"icons": [
{
"src": "images/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "images/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}

29
dist/robots.txt vendored
View file

@ -1,4 +1,31 @@
# robots.txt for debridcompare.xyz
User-agent: *
Allow: /
Disallow: /cgi-bin/
Disallow: /admin/
Disallow: /*.json$
Sitemap: https://debridcompare.pages.dev/sitemap.xml
# Crawl-delay for respectful crawling
Crawl-delay: 1
# Sitemaps
Sitemap: https://debridcompare.xyz/sitemap.xml
# Specific user agents
User-agent: Googlebot
Allow: /
Crawl-delay: 0
User-agent: Bingbot
Allow: /
Crawl-delay: 0
User-agent: Slurp
Allow: /
User-agent: DuckDuckBot
Allow: /
User-agent: Baiduspider
Allow: /
Crawl-delay: 2

1
dist/site.webmanifest vendored Normal file
View file

@ -0,0 +1 @@
{"name":"Debrid Compare","short_name":"DC","icons":[{"src":"images/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"images/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

24
dist/sitemap.xml vendored
View file

@ -1,7 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://debridcompare.pages.dev/</loc>
<lastmod>2026-03-22</lastmod>
</url>
</urlset>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!-- Homepage -->
<url>
<loc>https://debridcompare.xyz/</loc>
<lastmod>2025-01-11T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
<image:image>
<image:loc>https://debridcompare.xyz/images/og.png</image:loc>
<image:title>Debrid Services Comparison Tool</image:title>
<image:caption>Compare 10 premium debrid services including AllDebrid, Real-Debrid, TorBox, and more</image:caption>
</image:image>
</url>

View file

@ -3,7 +3,7 @@
"version": "2.0.1",
"description": "A concise comparison of pricing and supported hosts for popular debrid services including AllDebrid, Real-Debrid, LinkSnappy, Premiumize, Debrid-Link, TorBox, and Mega-Debrid.",
"main": "index.js",
"homepage": "https://debridcompare.pages.dev/",
"homepage": "https://debridcompare.xyz/",
"repository": {
"type": "git",
"url": "https://github.com/fynks/debrid-services-comparison"
@ -12,14 +12,13 @@
"minify:css": "cleancss -o dist/css/styles-min.css dist/css/styles.css",
"minify:js": "terser dist/js/app.js -o dist/js/app-min.js --compress --mangle",
"optimize-json": "chmod +x scripts/json-optimizer.sh && scripts/json-optimizer.sh dist/json/file-hosts.json dist/json/file-hosts-optimized.json && scripts/json-optimizer.sh dist/json/adult-hosts.json dist/json/adult-hosts-optimized.json",
"prune-json": "rm -f dist/json/file-hosts.json dist/json/adult-hosts.json",
"build": "npm run minify:css && npm run minify:js && npm run optimize-json && npm run prune-json && workbox generateSW workbox-config.js",
"build": "npm run minify:css && npm run minify:js && npm run optimize-json && workbox generateSW workbox-config.js",
"postbuild": "node scripts/replace-assets.js"
},
"author": "fynks",
"dependencies": {
"clean-css-cli": "^5.6.3",
"terser": "^5.46.0",
"workbox-cli": "^7.4.0"
"terser": "^5.44.0",
"workbox-cli": "^7.3.0"
}
}

View file

@ -46,33 +46,46 @@ function replaceAssets() {
};
const cssHash = safeHash(cssMinPath);
const jsHash = safeHash(jsMinPath);
const cssTarget = cssHash ? `href="/css/styles-min.css?v=${cssHash}"` : 'href="/css/styles-min.css"';
const jsTarget = jsHash ? `src="/js/app-min.js?v=${jsHash}"` : 'src="/js/app-min.js"';
const cssTarget = cssHash ? `href="./css/styles-min.css?v=${cssHash}"` : 'href="./css/styles-min.css"';
const jsTarget = jsHash ? `src="js/app-min.js?v=${jsHash}"` : 'src="js/app-min.js"';
// Normalize all stylesheet/script/preload references to minified assets with one hash.
const cssHrefPattern = /href=["'](?:\.\/|\/)?css\/(?:styles|styles-min)\.css(?:\?[^"']*)?["']/g;
const jsSrcPattern = /src=["'](?:\.\/|\/)?js\/(?:app|app-min)\.js(?:\?[^"']*)?["']/g;
const jsHrefPattern = /href=["'](?:\.\/|\/)?js\/(?:app|app-min)\.js(?:\?[^"']*)?["']/g;
// Replace CSS links in head - more flexible patterns
const cssPatterns = [
/href=["']\.\/css\/styles\.css["']/g,
/href=["']css\/styles\.css["']/g,
/href=["'][^"']*\/styles\.css["']/g
];
const cssMatches = updatedHeadContent.match(cssHrefPattern);
if (cssMatches) {
updatedHeadContent = updatedHeadContent.replace(cssHrefPattern, cssTarget);
cssReplaced += cssMatches.length;
cssPatterns.forEach(pattern => {
const matches = updatedHeadContent.match(pattern);
if (matches) {
updatedHeadContent = updatedHeadContent.replace(pattern, cssTarget);
cssReplaced += matches.length;
}
});
// Ensure existing preload to styles-min.css carries the same version hash
if (cssHash) {
const preloadMinCssPattern = /href=["']\/?css\/styles-min\.css["']/g;
if (preloadMinCssPattern.test(updatedHeadContent)) {
updatedHeadContent = updatedHeadContent.replace(preloadMinCssPattern, `href="/css/styles-min.css?v=${cssHash}"`);
}
}
const jsSrcHeadMatches = updatedHeadContent.match(jsSrcPattern);
if (jsSrcHeadMatches) {
updatedHeadContent = updatedHeadContent.replace(jsSrcPattern, jsTarget);
jsReplaced += jsSrcHeadMatches.length;
}
// Replace JS script src in head - more flexible patterns
const jsPatterns = [
/src=["']\.\/js\/app\.js["']/g,
/src=["']js\/app\.js["']/g,
/src=["'][^"']*\/app\.js["']/g
];
// Preload script links use href (not src), so normalize them too.
const jsHrefHeadMatches = updatedHeadContent.match(jsHrefPattern);
if (jsHrefHeadMatches) {
const jsHrefTarget = jsHash ? `href="/js/app-min.js?v=${jsHash}"` : 'href="/js/app-min.js"';
updatedHeadContent = updatedHeadContent.replace(jsHrefPattern, jsHrefTarget);
jsReplaced += jsHrefHeadMatches.length;
}
jsPatterns.forEach(pattern => {
const matches = updatedHeadContent.match(pattern);
if (matches) {
updatedHeadContent = updatedHeadContent.replace(pattern, jsTarget);
jsReplaced += matches.length;
}
});
// Also check for script tags at the end of body (common pattern)
const bodyMatch = html.match(/(<body[^>]*>)([\s\S]*?)(<\/body>)/i);
@ -80,11 +93,13 @@ function replaceAssets() {
const [fullBodyTag, bodyStart, bodyContent, bodyEnd] = bodyMatch;
let updatedBodyContent = bodyContent;
const jsSrcBodyMatches = updatedBodyContent.match(jsSrcPattern);
if (jsSrcBodyMatches) {
updatedBodyContent = updatedBodyContent.replace(jsSrcPattern, jsTarget);
jsReplaced += jsSrcBodyMatches.length;
}
jsPatterns.forEach(pattern => {
const matches = updatedBodyContent.match(pattern);
if (matches) {
updatedBodyContent = updatedBodyContent.replace(pattern, jsTarget);
jsReplaced += matches.length;
}
});
// Reconstruct the body if changes were made
if (updatedBodyContent !== bodyContent) {