Update hotlinking documentation

This commit is contained in:
2025-02-24 20:26:23 +01:00
parent 79be8f7e89
commit d602fc96c5
3 changed files with 64 additions and 131 deletions

View File

@@ -21,13 +21,10 @@ let file = {
Hotlink protection enabled
</h1>
<p>
Hotlinking protection has been enabled for this file. This happens when
a file is downloaded many times outside of our file viewer page (this
page). Usually this means people are using download managers like
JDownloader 2, Aria2 or wget. Using a download manager circumvents
pixeldrain's advertisements and we lose money because of that. More
information about this protection mechanism can be found on <a
href="/#hotlinking">the home page</a>.
Hotlinking protection has been enabled for this file. This happens
when a file is downloaded many times outside of our file viewer page
(this page). You can find more information about hotlink protection
on the <a href="/about#toc_6">FAQ page</a>.
</p>
{:else if file.availability === "ip_download_limited_captcha_required"}
<h1>

View File

@@ -1,17 +1,6 @@
<script>
import { onMount } from "svelte";
import Euro from "../util/Euro.svelte";
import Modal from "../util/Modal.svelte";
import OtherPlans from "./OtherPlans.svelte";
let file_expiry
let direct_linking
onMount(() => {
if (window.location.hash === "#direct_linking" || window.location.hash === "#hotlinking") {
direct_linking.toggle()
}
})
</script>
<section>
@@ -53,7 +42,10 @@ onMount(() => {
</div>
<div class="left_col">
Downloading
<a class="round button" href="/about#toc_3">
<i class="icon">info</i>
Transfer limit
</a>
</div>
<div class="feature_cell free_feat">
<span class="bold">6 GB per day</span><br/>
@@ -75,10 +67,10 @@ onMount(() => {
</div>
<div class="left_col">
<button class="round" on:click={direct_linking.toggle}>
<a class="round button" href="/about#toc_6">
<i class="icon">info</i>
Hotlinking
</button>
</a>
</div>
<div class="feature_cell free_feat">
<span class="bold">Hotlinking not supported</span><br/>
@@ -102,10 +94,10 @@ onMount(() => {
</div>
<div class="left_col">
<button class="round" on:click={file_expiry.toggle}>
<a class="round button" href="/about#toc_1">
<i class="icon">info</i>
File expiry
</button>
</a>
</div>
<div class="feature_cell free_feat">
<span class="bold">120 days</span> (4 months)
@@ -209,101 +201,6 @@ onMount(() => {
<OtherPlans/>
</section>
<Modal bind:this={file_expiry} title="File Expiry Postponing" padding>
<p>
Files on pixeldrain have to expire eventually. If we didn't do this the
website would keep growing forever and we would run out of money pretty
quickly.
</p>
<p>
Pixeldrain uses a postponing system for expiring files. When a file is
freshly uploaded it gets 120 days by default (240 days if you have the
pro plan). After these 120 days we will check when the file was last
viewed. Files which are regularly viewed could still bring new users to
the platform, it would be rude to show these people a File Not Found
page. So if the file was viewed in the last 120 days we will simply
postpone the next check a month. If the file was not viewed however, it
will be deleted.
</p>
<p>
Views are only counted when someone visits the download page in a web
browser. This makes sure that users can see that the file comes from
pixeldrain.
</p>
<p>
This way we can minimize dead links, and you won't have to tell your
friends to 'hurry and download this before it expires'.
</p>
</Modal>
<Modal bind:this={direct_linking} title="Hotlinking Bandwidth" padding>
<p>
Paying for bandwidth is the most expensive part of running pixeldrain.
Because of this we have to limit what can be downloaded and by who.
</p>
<p>
Normally when you view a file it's on pixeldrain's file viewer. The file
viewer is the page with the download button, the name of the file and a
frame where you can view the file if it's an image, video, audio, PDF or
text file.
</p>
<h3>Rate limiting</h3>
<p>
It's also possible to link directly to a file instead of the download
page. This circumvents our advertisers and branding and thus we lose
money when people do this. That's why I added 'hotlink protection mode'
to files. This mode is enabled when a file has been downloaded five
times more than it has been viewed through the file viewer. When hotlink
protection mode is activated a file cannot be downloaded through the
API, the request needs to come from the file viewer page. On the file
viewer you will see a CAPTCHA to fill in when you click the download
button.
</p>
<p>
More information about <a
href="https://en.wikipedia.org/wiki/Inline_linking" target="_blank"
rel="noreferrer">Hotlinking on Wikipedia</a>.
</p>
<h3>Hotlinking with a Pro subscription</h3>
<p>
When you have a Pro subscription you will get a monthly data transfer
limit for all the files on your account combined. Files you download
from pixeldrain are subtracted from the data cap. If you have <a
href="/user/subscription">hotlinking</a>
enabled your data cap is also used when other people download
your files.
</p>
<p>
In principle there is always someone who pays for the bandwidth usage
when a file is being downloaded:
</p>
<ol>
<li>
If the person downloading the file has a Pro subscription their data
cap is used.
</li>
<li>
If the person who uploaded the file has a Pro subscription and
hotlinking is enabled on their account, then the uploader's data cap
is used.
</li>
<li>
If neither the uploader nor the downloader has a Pro subscription
the download will be supported by advertisements on the download
page.
</li>
</ol>
<p>
The bandwidth cap on your account is a 30 day rolling window. This means
that bandwidth usage will expire 30 days after it was used. Your counter
will not reset at the start of the next month.
</p>
<p>
When a list of files is downloaded with the 'DL all files' button each
file in the resulting zip file will be counted separately.
</p>
</Modal>
<style>
.bold {
font-weight: bold;
@@ -328,7 +225,7 @@ onMount(() => {
justify-content: center;
align-items: center;
text-align: center;
padding: 0.5em;
padding: 0.25em;
min-height: 3em;
}