▶️ YouTube QR Code Generator

Get More YouTube Subscribers
With a Scannable QR Code

Create a QR code that opens your YouTube channel, a specific video, or a one‑tap subscribe link. Perfect for video thumbnails, merch, posters, and email signatures. 100% free, no sign‑up.

📺 Channel 🎬 Video 🔔 Subscribe 📱 All Phones
▶️ YouTube link details YOUTUBE
How to get your channel link: Your channel handle starts with @ (e.g. @ToolsBox) — you can also paste the full YouTube channel URL.
Start with @ for handles, or paste the full URL from your browser
📁 Click or drag to upload logo
PNG, JPG, SVG · max 500 KB
Logo preview
YouTube QR
💡 Quick tips
Handles must start with @ (e.g. @ToolsBox)
Use Level H error correction with logo overlay
Download SVG for print — infinite resolution
Min print size on posters: 3×3 cm
Test scan on iPhone and Android before printing

📊 Why YouTube QR Codes Work

70%
of YouTube watch time comes from mobile devices – QR codes are perfect for mobile users
2B+
monthly logged‑in users on YouTube – a huge audience ready to discover your content
35%
higher engagement when QR codes are used in marketing materials vs. text links
4.5×
more likely to subscribe when scanning a QR code vs. manual search

📖 How to Create Your YouTube QR Code in 4 Steps

Choose Your Mode
Select Channel, Video, or Subscribe mode – depending on where you want viewers to land.
Enter Your YouTube Link
Paste your channel handle (with @), a video URL/ID, or your channel for the subscribe link.
Generate and Customise
Click Generate – your QR appears instantly. Change colours, add your logo, adjust size.
Download and Display
Download as PNG for digital, SVG for print. Place it on merch, posters, emails, or anywhere your audience is.
Test Before Bulk Printing
Scan with both iPhone and Android to ensure the link opens the correct YouTube destination.
Track and Optimise
Use YouTube Analytics to monitor traffic from QR code campaigns and refine your placements.

💼 Where to Use Your YouTube QR Code

Event Banners
Promote your channel at conferences, meetups, and live events.
Merch & Packaging
Drive customers to your latest videos via product packaging.
Email Signatures
Add a subscribe QR to every email you send.
Business Cards
Link directly to your channel from networking cards.
Video Thumbnails
Embed a QR in your video thumbnails to drive cross‑channel traffic.
Social Media Stories
Share the QR on Instagram, TikTok, or Snapchat stories.
Stickers & Decals
Place on laptops, water bottles, or any physical item your fans use.
Website & Blog
Add the QR to your site's sidebar or blog posts for easy subscription.

🚀 6 Benefits of a YouTube QR Code

Zero Friction for Viewers
No need to type or search – one scan and your content loads instantly. Removes every barrier between a viewer and your channel.
Grow Your Subscriber Base
A one‑tap subscribe QR makes it effortless for fans to follow you, boosting your subscriber count faster than any other method.
Passive Promotion
Once you place the QR on materials, it works 24/7 without any ongoing effort – a one‑time setup for continuous exposure.
Stand Out from the Crowd
Most creators don't use QR codes – this gives you a unique, professional edge in a crowded platform.
Cost‑Free Marketing
Printing a QR code costs pennies, but the potential lifetime value of a subscriber is immense. Infinite ROI.
Branded and Professional
Customise with your brand colours and logo – a branded QR looks more trustworthy and drives higher scan rates.

📖 Complete Guide: How to Get More YouTube Subscribers with QR Codes

YouTube is the second‑largest search engine in the world, with over 2 billion monthly logged‑in users. But getting people to find your channel, watch your videos, and hit the subscribe button is a constant challenge. One of the most effective ways to bridge the gap between your offline presence and your YouTube channel is through QR codes.

Why Most Creators Miss Out

Many creators rely solely on YouTube's algorithm or social media links to drive traffic. But when you're at an event, handing out business cards, or selling merchandise, there's no easy way for someone to instantly visit your channel – unless you use a QR code. Without it, they have to remember your name, open the YouTube app, search, and hope they find the right channel. That's too many steps.

How QR Codes Solve This

A YouTube QR code reduces the entire process to a single scan. Whether it's a channel link, a specific video, or a subscribe prompt, the viewer is exactly where you want them in one second. This significantly increases the likelihood of them becoming a subscriber because the friction is removed.

Best Practices for YouTube QR Codes

Frequently Asked Questions

Choose Channel mode, enter your channel handle (starting with @) or full channel URL, click Generate, then download as PNG or SVG. Scanning opens your channel directly in the YouTube app or browser.
Yes. Switch to Video mode and paste the full YouTube video URL or just the video ID. The QR code will open that exact video when scanned.
Yes. Switch to Subscribe mode and enter your channel handle or ID — the generated link opens YouTube with a subscribe confirmation prompt for your channel.
No. This is a static QR code — the YouTube link is encoded directly into the image. It works forever with no subscription, server, or expiry date.
No. All QR code generation happens entirely in your browser. Your channel handle, video link, or any other input never leaves your device — it is never sent to our servers, stored, or tracked.

YouTube QR Code · ToolsBox.org

' ); win.document.close(); } function resetAll() { ['yt-channel', 'yt-video', 'yt-sub-channel'].forEach(id => { const el = document.getElementById(id); if (el) el.value = ''; }); document.getElementById('qr-out').innerHTML = ''; document.getElementById('qm-info').textContent = '—'; document.getElementById('qm-ready').textContent = ''; document.getElementById('link-preview').style.display = 'none'; rmLogo(); } /* ── CUSTOMISE ── */ function toggleCust() { const b = document.getElementById('cust-body'); const hd = document.querySelector('.cust-hd'); const h = b.classList.toggle('hide'); hd.setAttribute('aria-expanded', !h); document.querySelector('.cust-arr').textContent = h ? '▾' : '▴'; } function syncHex(cid, hid) { document.getElementById(hid).value = document.getElementById(cid).value; } function syncCol(hid, cid) { const v = document.getElementById(hid).value; if (/^#[0-9a-fA-F]{6}$/.test(v)) document.getElementById(cid).value = v; } function updSize() { const v = document.getElementById('sz-range').value; document.getElementById('sz-label').textContent = v + '×' + v; document.getElementById('sz-range').setAttribute('aria-valuetext', v + ' by ' + v + ' pixels'); } function setEC(ec, btn) { EC = ec; document.querySelectorAll('.ec-p').forEach(p => { p.classList.remove('on'); p.setAttribute('aria-pressed', 'false'); }); btn.classList.add('on'); btn.setAttribute('aria-pressed', 'true'); } function preset(fg, bg) { document.getElementById('fg-col').value = fg; document.getElementById('fg-hex').value = fg; document.getElementById('bg-col').value = bg; document.getElementById('bg-hex').value = bg; } /* ── LOGO ── */ function handleLogo(inp) { const f = inp.files[0]; if (!f) return; if (f.size > 512000) { showErr('Logo must be under 500 KB'); return; } const reader = new FileReader(); reader.onload = e => { currentLogoBase64 = e.target.result; document.getElementById('logo-img').src = currentLogoBase64; document.getElementById('logo-name').textContent = f.name; document.getElementById('logo-prev').style.display = 'flex'; setEC('H', document.querySelector('.ec-p[data-ec="H"]')); autoGenerate(); }; reader.readAsDataURL(f); } function rmLogo() { currentLogoBase64 = null; document.getElementById('logo-inp').value = ''; document.getElementById('logo-prev').style.display = 'none'; document.getElementById('logo-img').src = ''; autoGenerate(); } /* ── ERRORS ── */ function showErr(m) { const e = document.getElementById('err-box'); e.textContent = '⚠️ ' + m; e.classList.add('show'); setTimeout(() => e.classList.remove('show'), 5000); } function hideErr() { document.getElementById('err-box').classList.remove('show'); } /* ── FAQ ── */ function faq(el) { const p = el.parentElement; const open = p.classList.contains('open'); document.querySelectorAll('.fi').forEach(x => { x.classList.remove('open'); x.querySelector('.fq').setAttribute('aria-expanded', 'false'); }); if (!open) { p.classList.add('open'); el.setAttribute('aria-expanded', 'true'); } } /* ── MOBILE NAV ── */ (function() { const h = document.getElementById('ham'), m = document.getElementById('mob-menu'); h.addEventListener('click', () => { const o = m.classList.toggle('open'); h.setAttribute('aria-expanded', o); const s = h.querySelectorAll('span'); if (o) { s[0].style.transform = 'rotate(45deg) translate(4px,4px)'; s[1].style.opacity = '0'; s[2].style.transform = 'rotate(-45deg) translate(4px,-4px)'; } else { s.forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); document.addEventListener('click', e => { if (!h.contains(e.target) && !m.contains(e.target)) { m.classList.remove('open'); h.setAttribute('aria-expanded', 'false'); h.querySelectorAll('span').forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); })(); /* ── LOGO DRAG‑AND‑DROP ── */ (function() { const drop = document.getElementById('logo-drop'); ['dragenter', 'dragover'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.add('drag-over'); })); ['dragleave', 'drop'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.remove('drag-over'); })); drop.addEventListener('drop', e => { e.preventDefault(); const f = e.dataTransfer.files[0]; if (f && f.type.startsWith('image/')) { const dt = new DataTransfer(); dt.items.add(f); document.getElementById('logo-inp').files = dt.files; handleLogo(document.getElementById('logo-inp')); } }); drop.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); document.getElementById('logo-inp').click(); } }); })(); /* ── DEMO ON LOAD ── */ window.addEventListener('load', () => { document.getElementById('yt-channel').value = '@ToolsBox'; livePreview(); generateQR(); });