<style>
.igdl-wrap{max-width:700px;margin:40px auto;font-family:system-ui,sans-serif;text-align:center}
.igdl-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.igdl-tab{padding:8px 18px;border-radius:20px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:14px}
.igdl-tab.active{background:#6c2bd9;color:#fff;border-color:#6c2bd9}
.igdl-title{font-size:34px;font-weight:800;background:linear-gradient(90deg,#a855f7,#ec4899);-webkit-background-clip:text;color:transparent;margin-bottom:6px}
.igdl-form{display:flex;gap:10px;background:#fff;padding:10px;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.08);align-items:center}
.igdl-input{flex:1;border:none;outline:none;padding:12px;font-size:15px;min-width:0}
.igdl-btn{background:#3b82f6;color:#fff;border:none;padding:12px 28px;border-radius:10px;cursor:pointer;font-weight:600;white-space:nowrap}
.igdl-btn:disabled{opacity:.6;cursor:not-allowed}
.igdl-clear-btn,.igdl-paste-btn{background:#f1f1f4;color:#333;border:none;padding:12px 16px;border-radius:10px;cursor:pointer;font-weight:600;white-space:nowrap;display:none;align-items:center;gap:6px}
.igdl-clear-btn:hover,.igdl-paste-btn:hover{background:#e4e4ea}
.igdl-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0}
.igdl-spinner-wrap{display:none;align-items:center;justify-content:center;gap:10px;margin-top:20px;color:#555}
.igdl-spinner{width:22px;height:22px;border:3px solid #e2d9f7;border-top-color:#6c2bd9;border-radius:50%;animation:igdl-spin .8s linear infinite}
@keyframes igdl-spin{to{transform:rotate(360deg)}}
.igdl-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:30px;text-align:left}
.igdl-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.igdl-card img,.igdl-card video{width:100%;height:220px;object-fit:cover;display:block;background:#000}
.igdl-dl{display:block;text-align:center;background:#3b82f6;color:#fff;padding:10px;text-decoration:none;font-weight:600}
.igdl-msg{margin-top:16px;color:#666}
.igdl-msg.igdl-error{color:#d33}
.igdl-turnstile-wrap{display:flex;justify-content:center;margin-top:18px}
.igdl-content{max-width:1000px;margin:60px auto 20px;padding:0 20px;font-family:system-ui,sans-serif;color:#1f2430}
.igdl-content h2{color:#2f5bff;font-size:28px;font-weight:800;text-align:center;margin-bottom:8px}
.igdl-content .igdl-underline{width:70px;height:4px;background:#e0257e;margin:0 auto 26px;border-radius:2px}
.igdl-content p{line-height:1.7;color:#333}
.igdl-content .igdl-lead{text-align:center;max-width:750px;margin:0 auto 30px;color:#555}
.igdl-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:60px}
.igdl-step-card{background:linear-gradient(135deg,#a855f7,#ec4899);border-radius:16px;padding:0;overflow:hidden;color:#fff;text-align:center}
.igdl-step-visual{padding:50px 20px;font-size:40px}
.igdl-step-body{background:#fff;color:#1f2430;padding:20px}
.igdl-step-body h3{color:#e0257e;margin:0 0 12px}
.igdl-step-body p{color:#444;font-size:15px;margin:0}
.igdl-feature-grid,.igdl-device-grid,.igdl-what-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:60px}
.igdl-feature-card{background:#fff;border:1px solid #eee;border-radius:14px;padding:24px;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.igdl-feature-card h3{color:#2f5bff;margin:0 0 10px;font-size:19px}
.igdl-feature-card p{margin:0;font-size:15px;color:#444}
.igdl-legal-box{background:#fff8f8;border:1px solid #ffd8d8;border-radius:14px;padding:24px;margin-bottom:60px;font-size:15px;line-height:1.7}
.igdl-faq-item{margin-bottom:22px}
.igdl-faq-item h3{color:#2f5bff;font-size:17px;margin:0 0 6px}
.igdl-faq-item p{margin:0;color:#444;font-size:15px}
.igdl-disclaimer{font-size:13px;color:#888;text-align:center;margin:40px auto 0;max-width:700px;line-height:1.6}
</style>
<div class="igdl-wrap">
<div class="igdl-title">Instagram Video Downloader</div>
<p>Videos, Photos, Reels & Stories download karein</p>
<div class="igdl-tabs">
<div class="igdl-tab active" data-type="post">Post</div>
<div class="igdl-tab" data-type="reel">Reel</div>
<div class="igdl-tab" data-type="igtv">IGTV</div>
<div class="igdl-tab" data-type="carousel">Carousel</div>
<div class="igdl-tab" data-type="story">Story</div>
</div>
<div class="igdl-form">
<input class="igdl-input" id="igdl-url" placeholder="Instagram link (ya Story ke liye username) paste karein" autocomplete="off">
<input class="igdl-hp" id="igdl-hp" type="text" tabindex="-1" autocomplete="off">
<button class="igdl-clear-btn" id="igdl-clear" type="button">✕ Clear</button>
<button class="igdl-paste-btn" id="igdl-paste" type="button">📋 Paste</button>
<button class="igdl-btn" id="igdl-btn" type="button">Download</button>
</div>
<div class="igdl-turnstile-wrap">
<div class="cf-turnstile" id="igdl-turnstile" data-sitekey="0x4AAAAAADj81-lOzy9yI5hm" data-callback="igdlTurnstileCallback" data-expired-callback="igdlTurnstileExpired" data-theme="light"></div>
</div>
<div class="igdl-spinner-wrap" id="igdl-spinner-wrap">
<div class="igdl-spinner"></div>
<span>Media fetch ho raha hai...</span>
</div>
<div class="igdl-msg" id="igdl-msg"></div>
<div class="igdl-results" id="igdl-results"></div>
</div>
<div class="igdl-content">
<h2>How to download Instagram content?</h2>
<div class="igdl-underline"></div>
<p class="igdl-lead">Follow these three simple steps to save any public Instagram post, reel, IGTV, carousel or story.</p>
<div class="igdl-steps">
<div class="igdl-step-card">
<div class="igdl-step-visual">🔗</div>
<div class="igdl-step-body">
<h3>Copy the link</h3>
<p>Open Instagram, find the post or reel you want, tap the three dots and choose "Copy Link".</p>
</div>
</div>
<div class="igdl-step-card">
<div class="igdl-step-visual">📋</div>
<div class="igdl-step-body">
<h3>Paste it here</h3>
<p>Come back to this page, choose the right tab above (Post, Reel, IGTV, Carousel or Story) and paste the link.</p>
</div>
</div>
<div class="igdl-step-card">
<div class="igdl-step-visual">⬇️</div>
<div class="igdl-step-body">
<h3>Hit Download</h3>
<p>Click Download and save the video or photo straight to your phone or computer, in the original quality.</p>
</div>
</div>
</div>
<h2>Why use this Instagram Downloader</h2>
<div class="igdl-underline"></div>
<div class="igdl-feature-grid">
<div class="igdl-feature-card">
<h3>Original quality, no watermark</h3>
<p>Every video or photo saves at the quality it was posted in. Nothing is stamped on top of the file.</p>
</div>
<div class="igdl-feature-card">
<h3>No login required</h3>
<p>You never need to sign in with your Instagram account. Just paste a public link and download.</p>
</div>
<div class="igdl-feature-card">
<h3>Works on any device</h3>
<p>This page adjusts itself for phones, tablets and desktops, so it works the same everywhere.</p>
</div>
<div class="igdl-feature-card">
<h3>Supports every format</h3>
<p>Posts, Reels, IGTV, Carousel albums and Stories are all supported from the same page.</p>
</div>
</div>
<h2>What you can download</h2>
<div class="igdl-underline"></div>
<div class="igdl-what-grid">
<div class="igdl-feature-card">
<h3>Video (MP4, HD)</h3>
<p>The full clip in the best quality available, ready to play offline or share elsewhere.</p>
</div>
<div class="igdl-feature-card">
<h3>Photos</h3>
<p>Single images or full carousel albums, saved individually in their original resolution.</p>
</div>
<div class="igdl-feature-card">
<h3>Story highlights</h3>
<p>Save a public account's active stories before they disappear after 24 hours.</p>
</div>
</div>
<h2>Is it legal and safe to download Instagram content?</h2>
<div class="igdl-underline"></div>
<div class="igdl-legal-box">
<p>Saving a public post for personal, offline viewing is generally considered fine. What matters is respecting the original creator: don't re-upload someone else's content as your own, and don't use it commercially without permission — copyright always stays with whoever made it.</p>
<p style="margin-top:12px">This tool only works with public content, never asks for your Instagram username or password, and does not store the media you download or keep a history of the links you paste.</p>
</div>
<h2>Frequently Asked Questions</h2>
<div class="igdl-underline"></div>
<div class="igdl-faq-item">
<h3>Is this Instagram downloader free?</h3>
<p>Yes, it's completely free to use with no registration needed.</p>
</div>
<div class="igdl-faq-item">
<h3>Do I need to install an app or browser extension?</h3>
<p>No. Everything runs directly in your browser on this page.</p>
</div>
<div class="igdl-faq-item">
<h3>Will the downloaded video have a watermark?</h3>
<p>No, media is saved in its original form without any added watermark or logo.</p>
</div>
<div class="igdl-faq-item">
<h3>Can I download private Instagram accounts' content?</h3>
<p>No — only content from public accounts and public posts can be fetched.</p>
</div>
<div class="igdl-faq-item">
<h3>Does this tool store my downloads?</h3>
<p>No, nothing you download is stored on our server or logged against your identity.</p>
</div>
<div class="igdl-faq-item">
<h3>Why did I get a "too many requests" message?</h3>
<p>To keep the service reliable for everyone, there's a short limit on how many downloads can be requested per minute from the same connection. Waiting a minute and trying again resolves this.</p>
</div>
<p class="igdl-disclaimer">This tool is intended for personal use with publicly available Instagram content only. Please respect content creators' rights and Instagram's own Terms of Service.</p>
</div>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Instagram Video, Photo, Reels & Story Downloader",
"applicationCategory": "MultimediaApplication",
"operatingSystem": "Any",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"description": "Free online tool to download public Instagram videos, photos, reels, IGTV, carousel posts and stories in original quality without a watermark."
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is this Instagram downloader free?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes, it's completely free to use with no registration needed." }
},
{
"@type": "Question",
"name": "Do I need to install an app or browser extension?",
"acceptedAnswer": { "@type": "Answer", "text": "No. Everything runs directly in your browser on this page." }
},
{
"@type": "Question",
"name": "Will the downloaded video have a watermark?",
"acceptedAnswer": { "@type": "Answer", "text": "No, media is saved in its original form without any added watermark or logo." }
},
{
"@type": "Question",
"name": "Can I download private Instagram accounts' content?",
"acceptedAnswer": { "@type": "Answer", "text": "No, only content from public accounts and public posts can be fetched." }
}
]
}
</script>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async="" defer=""></script>
<script>
(function () {
const BACKEND_URL = "https://dmltraining.com/ig-fetch.php";
const PROXY_URL = "https://dmltraining.com/ig-proxy.php";
let activeType = 'post';
let lastRequestAt = 0;
let turnstileToken = '';
const COOLDOWN_MS = 3000;
window.igdlTurnstileCallback = function (token) {
turnstileToken = token;
};
window.igdlTurnstileExpired = function () {
turnstileToken = '';
};
const input = document.getElementById('igdl-url');
const hpField = document.getElementById('igdl-hp');
const clearBtn = document.getElementById('igdl-clear');
const pasteBtn = document.getElementById('igdl-paste');
const downloadBtn = document.getElementById('igdl-btn');
const msg = document.getElementById('igdl-msg');
const results = document.getElementById('igdl-results');
const spinnerWrap = document.getElementById('igdl-spinner-wrap');
document.querySelectorAll('.igdl-tab').forEach(tab => {
tab.addEventListener('click', () => {
document.querySelectorAll('.igdl-tab').forEach(t => t.classList.remove('active'));
tab.classList.add('active');
activeType = tab.dataset.type;
});
});
function updateClearPasteButtons() {
if (input.value.trim()) {
clearBtn.style.display = 'inline-flex';
pasteBtn.style.display = 'none';
} else {
clearBtn.style.display = 'none';
pasteBtn.style.display = 'inline-flex';
}
}
input.addEventListener('input', updateClearPasteButtons);
updateClearPasteButtons();
clearBtn.addEventListener('click', () => {
input.value = '';
results.innerHTML = '';
msg.textContent = '';
msg.classList.remove('igdl-error');
updateClearPasteButtons();
input.focus();
});
pasteBtn.addEventListener('click', async () => {
try {
const text = await navigator.clipboard.readText();
input.value = text;
updateClearPasteButtons();
} catch (e) {
msg.textContent = 'Clipboard access allow karein ya link manually paste karein.';
msg.classList.add('igdl-error');
}
});
function showSpinner(show) {
spinnerWrap.style.display = show ? 'flex' : 'none';
}
downloadBtn.addEventListener('click', async () => {
const url = input.value.trim();
results.innerHTML = '';
msg.classList.remove('igdl-error');
if (hpField.value) {
msg.textContent = 'Kuch galat lag raha hai, page reload karke dobara try karein.';
msg.classList.add('igdl-error');
return;
}
if (!url) {
msg.textContent = 'Pehle link ya username daalein';
msg.classList.add('igdl-error');
return;
}
const now = Date.now();
if (now - lastRequestAt < COOLDOWN_MS) {
msg.textContent = 'Thoda ruk kar dubara try karein.';
msg.classList.add('igdl-error');
return;
}
if (!turnstileToken) {
msg.textContent = 'Kripya "I am not a robot" verification complete karein.';
msg.classList.add('igdl-error');
return;
}
lastRequestAt = now;
msg.textContent = '';
showSpinner(true);
downloadBtn.disabled = true;
try {
const res = await fetch(BACKEND_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ url, type: activeType, hp: hpField.value, turnstileToken })
});
if (res.status === 429) {
const errData = await res.json().catch(() => ({}));
msg.textContent = errData.message || 'Bahut zyada requests. Thodi der baad try karein.';
msg.classList.add('igdl-error');
return;
}
const data = await res.json();
console.log(data);
if (data && data.error) {
msg.textContent = 'Error: ' + data.error;
msg.classList.add('igdl-error');
return;
}
const items = Array.isArray(data) ? data : (data.media || data.items || []);
if (!items.length) {
msg.textContent = 'Koi media nahi mila. Link check karke dubara try karein.';
msg.classList.add('igdl-error');
return;
}
items.forEach(item => {
const mediaUrl = item.urls && item.urls[0] ? item.urls[0].url : null;
if (!mediaUrl) return;
const ext = (item.urls[0].extension || '').toLowerCase();
const isVideo = ext === 'mp4';
const thumb = item.pictureUrl || mediaUrl;
const card = document.createElement('div');
card.className = 'igdl-card';
card.innerHTML = `
${isVideo
? `<video src="${mediaUrl}" muted controls poster="${thumb}"></video>`
: `<img src="${thumb}" />`}
<a class="igdl-dl" href="${PROXY_URL}?url=${encodeURIComponent(mediaUrl)}&type=${isVideo ? 'video' : 'image'}">Download</a>
`;
results.appendChild(card);
});
} catch (e) {
msg.textContent = 'Network error: dubara try karein.';
msg.classList.add('igdl-error');
} finally {
showSpinner(false);
downloadBtn.disabled = false;
if (window.turnstile) { window.turnstile.reset('#igdl-turnstile'); }
turnstileToken = '';
}
});
})();
</script>