Skip to main content
OpenQRS
Tools
Current language: English
100% Private

Audio QR code generator

100% Private & Local — Your data never leaves your browser. These QR codes are permanent and will never expire.

Audio settings

This changes what is checked and what is suggested. All four encode a plain https link, because there is no audio payload in the QR standard.

The share link from your platform, or the direct address of an audio file.

Enter the address the audio is streamed or served from.

Design

Module shape
Presets
Corner frame
Add a centre logo
Choose an image, or drop one herePNG, JPEG, WebP or GIF, up to 1000 KB

The image is read in this page and embedded in the code as a data: URL. It is not uploaded, and it stays inside the file you download.

More design options

The dark half of the code. Keep it well below the background in lightness.

Covers the quiet zone as well as the gaps between modules. A transparent background leaves it out of the file, so nothing is drawn with it.

Contrast 11.5:1 between the modules and the background.

Presets

PNG and WebP keep an alpha channel; the SVG simply omits the background rectangle. Whatever the code is placed on becomes the light half of the contrast.

Gradient

A gradient fills the dark modules only. Its lighter end sets the contrast a scanner actually gets, so both ends have to stay dark.

The second colour, used only while a gradient is selected. It is measured for contrast alongside the first.

45°

Degrees clockwise from a left-to-right sweep. A radial gradient spreads from the centre outwards, so the angle applies to a linear one only.

Module shape

Rounded shapes cover less of each cell. The centre stays covered, which is where a decoder samples, but a small print of a dense code reads more reliably as squares.

Corner frame

The ring of the three finder patterns.

Corner centre

The eye inside each finder pattern.

4 modules

The blank margin around the code, measured in modules. 4 is the specified minimum.

Higher recovery survives more damage and costs capacity, so the same content produces a denser symbol.

A logo sits at the centre and holds the level at H. Its width limit follows the symbol: 14% on the smallest code, 30% on a dense one.

Live preview & export

Export

Export

Raster, for screens

Complete the form to enable the downloads.

Export size and encoded text
Payload
Nothing encoded yet
Symbol
Not built yet
Recovery
M

Waiting for input

Export size

Between 64 and 4096 pixels. Exporting at 1024 px.

Encoded text

The QR standard has no audio payload, so an audio code is always a link to where the audio is streamed from. Pick the platform, paste the address, and the link is encoded exactly as given.

When someone scans it

The reader opens the link. A Spotify or Apple Podcasts address hands off to the installed app; a direct file address opens in the browser's audio player.

There is no audio QR format — there is a link

ISO/IEC 18004 defines four ways to put data in a symbol — digits, alphanumeric text, raw bytes and kanji — and none of them is audio. There is no media type, no codec field and no player: a camera app that decoded a symbol full of compressed speech would have nothing to hand it to. That, rather than any size limit, is why every audio QR code from every generator is a link. The platform selector above changes validation and guidance, not the payload format: all four options produce an ordinary https address.

Spotify and Apple Podcasts share links are exactly that — https addresses. On a phone with the app installed, the operating system's universal-link handling opens the app instead of the browser; without the app the same address lands on the web player or a store page. That handoff belongs to the platform and the operating system, and no property of the QR code influences it.

Direct audio files behave differently

An address ending in .mp3, .m4a, .ogg or .wav opens in the browser's own player on most phones: a bare transport bar on a blank page, with no artwork, no episode title and nothing to play next. Some browsers download the file instead of playing it. If you want a title and a description, the code has to point at a page you host rather than at the file.

Two server details decide whether it plays at all. The Content-Type has to be the real audio type — a file served as application/octet-stream downloads rather than plays. And the server has to answer range requests, or the listener cannot skip forward and a long file will not start until most of it has transferred.

  • Serve over https, or the browser blocks or warns before playing
  • Set Content-Type to audio/mpeg, audio/mp4, audio/ogg or audio/wav to match the file
  • Accept-Ranges: bytes is what makes the scrub bar work
  • Keep the filename stable; a renamed file breaks every printed copy

The link is the fragile part, not the symbol

Printed codes outlive catalogue decisions. A track can be pulled, a podcast can move host and change every episode address, and licensing can make a link resolve in one country and not in another. The symbol will decode faithfully in all three cases and still take the listener nowhere useful.

If the print run is large or long-lived, encode a short address on a domain you control and have that address point at the platform. It costs one redirect you own, and it is the only version of this that can be repaired without a reprint.

Questions and answers

Can the audio itself be stored in the code?

No. The QR standard has no audio payload at all — a symbol carries digits, text, bytes or kanji — and no reader hands raw bytes to a media player, so there would be nothing to play them. Every audio QR code, wherever it was made, is a link to where the audio is hosted.

Will it open the Spotify app or the website?

The app, if it is installed and the address is a standard share link, because the operating system routes it there. Without the app it opens the web player or a store page. The code cannot force either outcome.

Which option do I pick if my host is not listed?

Other host. It accepts any http or https address and skips the platform-specific checks, which is what you want for a podcast host, a band's own site or a library catalogue.

Why does my MP3 download instead of playing?

Almost always the server: either the Content-Type is wrong, or a Content-Disposition: attachment header is telling the browser to save the file. Both are fixed on the host, not in the code.

How a static QR code works

Every code on this site is static: the payload is written into the black and white modules themselves. Nothing is looked up when the code is read, no server of ours takes part, and no subscription holds the printed code up. The same property is the limit — once it is printed, what it contains cannot be changed.

Three things then decide whether a printed code reads: how many bytes the payload came to, which recovery level absorbs the damage, and how wide a single module ends up on paper. These guides work through each of them with the numbers.