⬇️ Download adult videos right on the page
Press Download on a video, pick a real quality with its file size, and
the MP4 goes straight to your browser's downloads. One click, no new tab, no
copying links, no pop-ups — on desktop and on phones.
🆕 What's new
- 2.7 — Select videos: on a listing, search or profile page, pick
thumbnails (or Select all) and download them in one go. It skips the ones
you already have. Free: 5 per batch; Supporter: up to 100, 3 at a time
(desktop).
- 2.6.4 — the daily limit now counts per browser, not per IP address.
If you share a VPN or a mobile network with other people, they no longer
use up your free downloads.
- 2.6.3 — the Free daily limit went from 20 to 30 downloads: 50% more
free. Unless you're a serious porn hoarder or a bot, that should cover a
normal day. 😂
- 2.6 — xHamster Shorts, the first clip of the feed included.
- 2.5 — a ⬇ Download button right on the player you're watching.
- 2.4 — a warning before you leave a page whose file isn't saved yet; the
listing in 39 languages.
🌐 Supported sites (20)
Each link opens that site's downloader page on nsfwdl.com — the backend
works without the script too.
Anything else: try the
universal downloader. It
handles many public adult video pages, but not every site. Full list:
nsfwdl.com/supported-sites.
📲 Install and use
- Desktop: install Tampermonkey or
Violentmonkey, then hit the install
button on this page. Chrome, Edge, Firefox, Opera and Brave.
- Android: Firefox with Tampermonkey or Violentmonkey, or Microsoft Edge
with Tampermonkey. Downloads finish just like on desktop.
- iPhone / iPad: Safari with the free Userscripts app or Stay. Tell
us in the Feedback tab how it goes.
On a supported video page a small ⬇ Download button appears in the
corner. Open the panel, pick a quality that really exists (with its size),
and the MP4 saves itself.
✨ What you get
- Real qualities, real sizes. Every option (e.g. 720p · ~110 MB,
1080p 60 fps · 220 MB) comes from the actual video, exact or estimated
sizes marked "~". No fake download buttons, ever.
- Live progress, measured on the server. See when each download is waiting,
being prepared, or handed to your browser. A real percentage appears during
preparation when the server can measure it. Not a fake timer bar.
- A button on the player and on thumbnails (desktop). Point at the video
you're watching and press ⬇ Download right on it; hover a thumbnail on a
listing, search or profile page and press ⬇ NSFWDL without opening it.
- One click with a preferred quality. Pick Best, 1080p, 720p, 480p or
Smallest once in ⚙ Settings; after that, every Download starts it straight
away.
- Queue as many as you like. Three run at a time (four with Supporter);
the rest wait their turn in the panel and start on their own. Close the
panel and they keep going.
- See what you already have. Saved videos get a green outline on their
thumbnails, "✓ Downloaded" on the button, and "✓ Again" on the hover
button — stored only in your userscript manager, and you can clear them or
turn the markers off in ⚙ Settings.
- Works in a background tab. The tab title shows the progress
("⬇ 45% · …"), and a notification tells you when a file is saved, or when
it is ready and needs one tap.
- Alt+Shift+D opens the downloader on a video page. Minimize the button
to a small dot, left or right corner — your choice is remembered.
🔧 How NSFWDL works — and why limits exist
NSFWDL is more than a browser userscript. The script provides the in-page
interface, while a self-hosted backend run by NSFWDL and powered by
yt-dlp handles download processing for a
wide range of adult platforms.
Running that backend takes real infrastructure: server capacity, CPU,
memory, temporary storage, electricity and network bandwidth. Those
resources cost money, even when downloads are free.
The Free tier is designed for everyday use. Automated scripts, bots and
heavy bulk downloading can consume substantial resources and affect
availability for everyone else. Reasonable daily limits help keep the
service useful and sustainable.
- Free: up to 30 downloads per day in each browser.
- Supporter: up to 300 downloads per day and downloads of files over
500 MB — up to about 2 GB.
Supporter contributions help cover the ongoing costs of operating and
improving the backend. They also unlock additional capabilities for people
who need them.
No pressure: if Free covers your needs, enjoy it. If you use NSFWDL
regularly and value the convenience, Supporter is a way to help keep the
service running.
🆓 Free vs Supporter
- Free — no account, no sign-up: 30 downloads a day, 3 downloading at a
time, files up to about 500 MB, normal processing. When you're near
the daily cap, the panel shows how many are left and links to the optional
Supporter key if you want more room.
- Supporter — a one-time pass (15, 30 or 60 days): 300 downloads a day,
4 at a time in the script, files up to about 2 GB, and priority when
the shared server is busy. No subscription or account is created.
- Enter a key once in ⚙ Settings → Supporter key and the large qualities
unlock right in the panel. Only a session token is kept (never the key),
and it goes only to nsfwdl.com.
- Free quality: 720p and lower are always free, 1080p is free for the
first 10 downloads of the day, and 4K needs Supporter.
🛠 Prefer to run downloads yourself?
yt-dlp is free, open-source software you
can install and run on your own computer. It lets you manage your own
downloads and use your own system resources without depending on the NSFWDL
backend.
The trade-off: you run the setup yourself, and the sites, formats and
behavior can differ from NSFWDL's. Great if you enjoy that control.
🔒 Privacy and permissions
- It talks only to NSFWDL. The script's
@connect list is exactly
nsfwdl.com and dl.nsfwdl.com, the two hosts that serve formats and
files. No analytics, ads or tracking code, and the
source is readable and unminified (MIT).
- Nothing is requested until you open the panel. Browsing, or hovering
the player and thumbnails, sends nothing. When you open the panel, the
video's public page link goes to nsfwdl.com to list its real formats;
choosing one starts the job and the panel follows its status. Requests
carry a fixed
/userscript marker so downloads made from this script can
be counted — and, like any visit, they reach NSFWDL from your IP address.
- Optional Supporter key. Userscript managers don't send nsfwdl.com
cookies, so a key you enter is exchanged once on nsfwdl.com for a session
token. Only the token is stored (never the key), and it is sent only to
nsfwdl.com, in an
X-NSFWDL-Supporter header. "Remove from this browser"
ends the session.
- A random browser ID for the daily count. So that people sharing a VPN
or mobile-network address don't use up each other's free downloads, the
script makes one random value, keeps it in your userscript manager and
sends it only to nsfwdl.com, in an
X-NSFWDL-Client header. It isn't
derived from anything about you and isn't linked to an account or your IP.
- Local-only storage. Your settings, how you minimized the button and —
unless you turn it off — the list of videos you saved stay in your
userscript manager and are never sent anywhere.
⚠️ Good to know
- Managers without
GM_xmlhttpRequest: the button opens the video on
NSFWDL in a new tab instead.
- RedGifs feeds (home, niches, profiles): the button picks the clip on
screen, even though the page link doesn't change while you scroll. On
xHamster Shorts it picks the clip you're watching, the first one included.
- Public videos only. No private, login-only, paid or subscription
content, no DRM circumvention, no live-cam recording. If a site isn't in
the list above, the universal downloader is worth a try.
- Real options only. If the uploader provided no 1080p, there is no
1080p to offer — the quality list only shows versions that exist.
- Download only videos you are allowed to save.
💬 Problems or ideas?
nsfwdl.com/contact or the
Feedback tab — reports,
ideas and ratings are all welcome.