# Smushify > Free image and video converter that runs entirely in the browser (WebAssembly). Files never leave the device. No sign-up, no limits, no watermark. ## Capabilities - Images in: PNG, JPG, WebP, AVIF, HEIC/HEIF. Out: WebP, AVIF, PNG (OxiPNG), JPG (MozJPEG). Quality 1–100, max width, compress to a target file size (e.g. 200 KB), batch, ZIP download. Location and camera metadata are removed. - Videos in: MP4, WebM, MOV, AVI, MKV, GIF. Out: MP4 (H.264/AAC), WebM (VP8/Vorbis), animated GIF. Quality, max width, batch, ZIP download. Metadata is stripped. - PDF: combine images into one PDF (page size fit/A4/Letter; Document, Photo or Smallest preset; greyscale; optional target size for the whole PDF). - Limits: bounded by the device's memory; video uses ffmpeg.wasm and needs a cross-origin-isolated page (served with COEP/COOP headers). ## Automating Smushify There is no API: every conversion runs in the page. Browser agents and scripts (Playwright, Puppeteer and the like) drive it with URL parameters, stable selectors and status attributes. ### URL parameters Every page (`/` and every converter page) accepts these optional parameters. They preset every file added afterwards. Unknown parameters and invalid values are ignored; the URL is never rewritten. - `tab`: `images` or `videos`. Defaults to the page's own tab. - `format`: images `webp`, `avif`, `png`, `jpg`; videos `mp4`, `webm`, `gif`. Must match the tab. - `quality`: integer 1–100, clamped. Ignored for PNG. - `width`: `original` or a maximum width in pixels. Default 1280 (480 for GIF). - `target` (images): target file size in bytes, or with `kb`/`mb` (`200kb`, `1.5mb`; 1 KB = 1000 bytes). Ignored for PNG. - `pdf=1` (images): open the "To PDF" panel. - `autoconvert=1`: convert each file as soon as it is added. Nothing is downloaded automatically. ### Selectors - File inputs: `#image-files` (Images tab) and `#video-files` (Videos tab), real `` elements named "Image files" and "Video files", so `page.setInputFiles()` works. Set files on them directly: the "Browse files" button opens the operating system's file dialog, which agent browsers cannot operate. - Toolbar buttons: Convert All, Reconvert All, Clear All, Download All, To PDF, with `data-action` `convert-all`, `reconvert-all`, `clear-all`, `download-all`, `toggle-pdf`. - Toolbar options (shown with 2+ files): "Format for all files", "Quality for all files", "Target size for all files" (`format-all`, `quality-all`, `target-all`). - Per file, named after the original file name: "Format for ", "Resize for ", "Quality for ", "Target size for " (`format`, `resize`, `quality`, `target`); buttons "Convert ", "Re-convert ", "Download ", "Compare ", "Remove " (`convert`, `reconvert`, `download`, `compare`, `remove`). - PDF panel: "Page size", "Quality", "Download PDF" (`pdf-page-size`, `pdf-quality`, `pdf-download`). - For selects, `data-action` is on the `role="combobox"` element; for sliders, on the range input. "Download All" keeps its name while a ZIP is built and gets `aria-busy="true"`. ### Status - Each file card has `data-file` (original name) and `data-status`: `idle`, `converting`, `done` or `error`, with matching visible text "Waiting", "Converting…" (video adds a percent), "Done" or "Error: ". - Done cards carry `data-output-name`, `data-output-bytes`, `data-output-width`, `data-output-height`, and `data-target-met="true|false"` when a target size was set. - Each converter has one `role="status"` live region with totals: "2 of 3 files converted", "All 3 files converted", "1 file failed". ### Downloads - One file: `.`, e.g. `photo.webp`. - Download All with two or more results: one ZIP named `smushify-YYYY-MM-DD.zip` (repeated names become `photo (2).webp`). - PDF: `smushify-YYYY-MM-DD.pdf`. Dates are the browser's local date. ### Example (Playwright) ```ts await page.goto('https://smushify.app/png-to-webp?quality=70&width=800&autoconvert=1'); await page.setInputFiles('#image-files', ['a.png', 'b.png']); await expect(page.locator('[data-status="done"]')).toHaveCount(2); const download = page.waitForEvent('download'); await page.click('[data-action="download-all"]'); expect((await download).suggestedFilename()).toMatch(/^smushify-\d{4}-\d{2}-\d{2}\.zip$/); ``` ## Converters ### Images - [PNG to WebP](https://smushify.app/png-to-webp): Convert PNG to WebP in your browser. Keep transparency, cut file size dramatically, and batch convert many PNGs at once. Free, and nothing is uploaded. - [JPG to WebP](https://smushify.app/jpg-to-webp): Convert JPG and JPEG photos to WebP in your browser. Get smaller images with the same visual quality and faster page loads. Free batch conversion, no upload. - [PNG to AVIF](https://smushify.app/png-to-avif): Convert PNG images to AVIF in your browser for some of the smallest image files possible. Keeps transparency. Free batch conversion, nothing is uploaded. - [JPG to AVIF](https://smushify.app/jpg-to-avif): Convert JPG photos to AVIF in your browser. AVIF files are often around half the size of JPG at similar quality. Free batch conversion with no upload. - [WebP to PNG](https://smushify.app/webp-to-png): Convert WebP images to PNG in your browser. Open WebP files in any editor or app, with transparency preserved. Free batch conversion, nothing is uploaded. - [WebP to JPG](https://smushify.app/webp-to-jpg): Convert WebP images to JPG in your browser so they open in any app, email or upload form. Free batch conversion with adjustable quality, nothing is uploaded. - [AVIF to JPG](https://smushify.app/avif-to-jpg): Convert AVIF images to JPG in your browser so you can open, edit and share them anywhere. Free batch conversion with adjustable quality and no upload. - [AVIF to PNG](https://smushify.app/avif-to-png): Convert AVIF images to PNG in your browser. Get a lossless, widely supported file with transparency preserved. Free batch conversion, nothing is uploaded. - [PNG to JPG](https://smushify.app/png-to-jpg): Convert PNG to JPG in your browser to make photos and screenshots much smaller. Transparent areas become white. Free batch conversion, nothing is uploaded. - [JPG to PNG](https://smushify.app/jpg-to-png): Convert JPG to PNG in your browser for lossless editing or apps that require PNG. Free batch conversion with optional resizing, and nothing is uploaded. - [HEIC to JPG](https://smushify.app/heic-to-jpg): Convert iPhone HEIC photos to JPG on Windows, Android or any browser. Free batch conversion that keeps photos upright. Nothing is uploaded. - [HEIC to WebP](https://smushify.app/heic-to-webp): Convert iPhone HEIC photos straight to WebP for your website. Small files that load fast in every browser. Free batch conversion, nothing uploaded. - [HEIC to PNG](https://smushify.app/heic-to-png): Convert iPhone HEIC photos to lossless PNG in your browser, on Windows, Android or Mac. Free, keeps photos upright, and nothing is uploaded. - [Compress images](https://smushify.app/compress-images): Compress PNG, JPG, WebP, AVIF and HEIC images in your browser. Resize and convert to WebP or AVIF for much smaller files and faster websites. Free, no upload. - [Images to PDF](https://smushify.app/images-to-pdf): Combine photos and scans into one PDF in your browser. Pages are sized for print, so a 20-page document is a few MB, not 60+. Nothing is uploaded. - [JPG to PDF](https://smushify.app/jpg-to-pdf): Convert JPG and JPEG images to a single PDF in your browser. Reorder pages, choose A4 or Letter, and keep the file small. Free, and nothing is uploaded. - [PNG to PDF](https://smushify.app/png-to-pdf): Turn PNG screenshots and images into one PDF in your browser. Each page is sized for print and the file stays small. Free, private and nothing is uploaded. - [HEIC to PDF](https://smushify.app/heic-to-pdf): Combine iPhone HEIC photos into one small PDF on Windows, Android or any browser. Pages are sized for print and stay upright. Free, and nothing is uploaded. - [Compress to 100 KB](https://smushify.app/compress-image-to-100kb): Shrink a photo to under 100 KB for forms and applications that cap upload size. Smushify finds the best quality that fits, in your browser, nothing uploaded. - [Compress to 200 KB](https://smushify.app/compress-image-to-200kb): Get any image under 200 KB in one click. Smushify picks the highest quality that fits each photo, in batches, right in your browser with nothing uploaded. - [Compress to 1 MB](https://smushify.app/compress-image-to-1mb): Reduce photos to under 1 MB while keeping them sharp. Smushify tries quality levels for you and keeps the best that fits. Batch, free and private in your browser. - [Squoosh alternative](https://smushify.app/squoosh-alternative): An honest Smushify vs Squoosh comparison. Squoosh is best for fine-tuning one image; Smushify adds batches, video, GIF, target sizes and PDFs. Both are free and private. ### Videos - [MP4 to WebM](https://smushify.app/mp4-to-webm): Convert MP4 videos to WebM in your browser for HTML5 video on your website. Adjustable quality and size, batch conversion, and nothing is uploaded. - [WebM to MP4](https://smushify.app/webm-to-mp4): Convert WebM videos to MP4 in your browser so they play on iPhone, Windows and social media. Free batch conversion with adjustable quality, no upload. - [MOV to MP4](https://smushify.app/mov-to-mp4): Convert MOV videos from iPhone, Mac or QuickTime to MP4 in your browser. Smaller files that play on Windows, Android and the web. Free, nothing is uploaded. - [MKV to MP4](https://smushify.app/mkv-to-mp4): Convert MKV videos to MP4 in your browser so they play in browsers, on phones and in editors. Free batch conversion with adjustable quality, no upload. - [AVI to MP4](https://smushify.app/avi-to-mp4): Convert old AVI videos to modern MP4 in your browser. Smaller files that play on phones, TVs and the web. Free batch conversion and nothing is uploaded. - [MP4 to GIF](https://smushify.app/mp4-to-gif): Turn MP4 and other videos into animated GIFs in your browser. Smooth 15 fps GIFs with optimised colours, adjustable size and quality, and nothing is uploaded. - [GIF to MP4](https://smushify.app/gif-to-mp4): Convert animated GIFs to MP4 in your browser. Much smaller files that play on iPhone, Android and every browser. Free batch conversion, nothing is uploaded. - [GIF to WebM](https://smushify.app/gif-to-webm): Convert animated GIFs to WebM video in your browser for lighter web pages. Adjustable quality and size, batch conversion, and nothing is uploaded. - [Compress video](https://smushify.app/compress-video): Compress MP4, MOV, WebM, AVI and MKV videos in your browser. Lower the quality or resolution for much smaller files for email, chat and websites. No upload. ## Guides - [Why your iPhone photos are HEIC, and how to open them anywhere](https://smushify.app/guides/why-are-my-iphone-photos-heic): iPhones save photos as HEIC to save space, but Windows, Android and many websites can't open them. Why that happens, and how to get a JPG for free. - [How to reduce image size for a website without losing quality](https://smushify.app/guides/reduce-image-size-for-website): A phone photo is about 5 MB; a web page needs closer to 100 KB. Resize, pick a modern format, set the quality and strip metadata, with real before-and-after numbers. - [JPG vs PNG vs WebP vs AVIF: which image format to use](https://smushify.app/guides/best-image-format-for-web): Which image format should you use? JPG, PNG, WebP and AVIF compared on file size, quality, transparency and browser support, with real test numbers. - [How to get a photo under 100 KB, 200 KB or 1 MB for an upload form](https://smushify.app/guides/compress-image-for-upload-limit): Upload form says "max 200 KB"? How file size limits work, what to change first, and how to hit any limit in one step, with real results from a 12-megapixel photo. - [Turn phone photos of a document into one small PDF](https://smushify.app/guides/scan-documents-to-pdf-with-your-phone): Ten phone photos make a 50 MB PDF if you are not careful. How to take good document photos and combine them into one PDF of 1 to 2 MB, free and private. - [How to make a video small enough to email or send in chat](https://smushify.app/guides/make-a-video-smaller-for-email-or-chat): Why phone videos are so big, how much smaller they can get, and the settings that fit a clip into an email. Plus why turning a video into a GIF makes it bigger. ## Optional - [Sitemap](https://smushify.app/sitemap.xml) - [Full text of every page](https://smushify.app/llms-full.txt)