"The masonry + auto-scroll combination is perfect for reviewing large photo collections. Nothing else comes close for in-browser browsing."
Media Viewer
View and organize your images and videos into custom queues
View and organize your images and videos into custom queues
A complete guide to browsing, organizing, and enjoying your images and videos — with masonry layouts, auto-scroll, play-all, and custom queues — entirely in your browser.
Media Viewer is a pure browser-based viewer for images and videos. Open any folder and every image and video inside loads as a scrollable card gallery — with lazy-loading thumbnails, hover-play for videos, and instant full-size preview on click. Unlike the other Sakarto tools, this one performs no file operations. It cannot delete, move, or rename anything. It is purely for viewing.
Beyond basic browsing, it offers two layout modes, adjustable spacing, auto-scroll for hands-free viewing, global play-all for videos, and a custom queue system that lets you create named collections from any mix of files in the folder.
Switch between a uniform grid and a Pinterest-style masonry layout that respects each image's natural aspect ratio.
Hands-free scrolling at adjustable speed. Pauses automatically when you scroll manually, then resumes after 1 second.
Start all visible videos simultaneously with one click. Staggered launch prevents browser audio conflicts.
Create named collections — "Favourites", "Nature", "To Print" — from any mix of files in the folder, each with its own view.
| Situation | Use This |
|---|---|
| I want to browse a folder of photos and enjoy them at leisure | 📺 Media Viewer |
| I want to find and remove near-identical duplicate photos | 🔍 Duplicate Finder |
| I want to delete unwanted images from a folder in bulk | 🗑️ Bulk Delete |
| I want to move photos into organised subfolders | 📂 Bulk Move |
| I want to rename a batch of photos with today's date as a prefix | ✏️ Bulk Rename |
| I want to create a curated selection of images for a project | 📺 Media Viewer → Queue |
| I want to watch a whole folder of vacation videos automatically | 📺 Media Viewer → Play All + Auto-scroll |
mode: "read", not "readwrite". Your files cannot be modified, moved, or deleted by this tool under any circumstance.When you select a folder, the browser reads every image and video file recursively. Only images (jpg, png, gif, webp, bmp) and videos (mp4, webm, mov, mkv, avi) are loaded based on which type checkboxes you have enabled. Other file types are silently skipped.
Cards are built synchronously and appended to the DOM in batches of 50, yielding to the event loop between batches. Cards appear immediately as each batch completes — you can start browsing before the scan finishes.
No image or video content is decoded at load time. Each card uses an IntersectionObserver with a 300px root margin. When a card scrolls within 300px of the viewport, its src is set and the media begins decoding. This keeps memory usage low even for folders with thousands of files.
Once each image or video loads, its natural dimensions are read. The card is assigned one of three aspect ratio classes — aspect-portrait, aspect-landscape, or aspect-square — which controls max-height in masonry mode.
Video cards have preload="none" at load time to avoid network overhead. When your mouse enters a video card, it plays. When it leaves, it pauses. This is independent of the Play All feature.
Toggle between two layout modes using the buttons above the file grid. The setting also applies to every custom queue tab independently.
object-fit: coverAuto-scroll drives the page downward at a constant speed so you can lean back and watch images and videos scroll past without touching keyboard or mouse.
Click ⬇️ Auto-scroll to start. Click ⏸️ Stop scroll or press Escape to stop.
The Speed slider (1–10) controls scroll velocity. Speed 3–4 works well for images; speed 1–2 for videos where you want to watch each clip.
Mouse wheel or trackpad input pauses auto-scroll immediately. It automatically resumes 1 second after you stop manually scrolling.
When the page reaches within 10px of the bottom, auto-scroll stops automatically and shows a "Reached bottom" toast.
Move your mouse over any video card and it plays immediately. Move away and it pauses. Videos are muted by default so multiple hover-plays don't create noise. Each video loops.
Click ▶️ Play All to start every video on the page simultaneously. Launches are staggered by 30ms per video to avoid browser throttling. Click ⏸️ Pause All to stop them all.
Click 🔇 Videos in the toolbar to toggle global mute on all video elements.
Click the ▶️ icon on any video card to open a modal player with native browser controls (play, pause, seek, volume, fullscreen).
Queues let you curate a named collection of files from the folder — like a playlist for images and videos. Each queue gets its own tab in the sidebar with its own independent layout, spacing, and auto-scroll controls.
Click one or more cards to select them (blue border), then click 📂 Add to Queue in the toolbar. A modal appears. If queues already exist, you can add to an existing one or create a new one.
Type a descriptive name — e.g., Nature, Favourites, To Print. Names must be unique. Click Create New Queue. The new queue tab appears in the sidebar.
The queue tab shows only the files you added, with its own Grid/Masonry toggle, spacing slider, hide-info toggle, and auto-scroll controls.
Click the ✕ on any card in the queue to remove that file. Click the ✕ button next to the queue name in the sidebar to delete the entire queue. Clearing or deleting a queue never touches the actual files.
On the welcome screen, check the file type boxes: 🖼️ Images and/or 🎬 Videos. If you only want to watch videos, uncheck Images to reduce the number of cards loaded.
Click 📂 Select Folder. A native folder picker opens (Chrome / Edge). Or drag and drop a folder directly onto the page. The folder is opened read-only — nothing in it can be modified.
Use the 📊 Grid / 🧱 Masonry buttons above the results to switch layout. In Masonry mode, use the Spacing slider to adjust the gap between columns (0–20px). Check Hide file info to show only the media for an immersive look.
Hover over any video card to play it. Click ▶️ Play All to launch every video at once. Click ⬇️ Auto-scroll and set a comfortable speed — then sit back and let the gallery scroll by automatically.
Click the 🔍 or ▶️ icon on any card to open a full-size modal. Images scale to fit the screen. Videos open with native controls including fullscreen. Click anywhere outside to close.
Ctrl+Click (Cmd+Click on Mac) any 2 or more cards to add them to the compare list (purple border). Click ⚖️ Compare in the toolbar. A modal opens showing each file side-by-side with dimensions, size, type, and path.
Select files you want to group, click 📂 Add to Queue, give the collection a name, and click Create. The new tab appears in the sidebar. Add more files to it at any time.
| Button / Action | What it does |
|---|---|
| 🔄 Select New Folder | Reload the page and pick a new folder to view |
| 📋 Copy Names (N) | Copy selected filenames to clipboard. N = count. |
| 📂 Add to Queue (N) | Add selected files to an existing or new named queue |
| ✕ Deselect All | Remove selection from all cards |
| ⚖️ Compare (N) | Open side-by-side compare modal for Ctrl+clicked files. Needs 2+. |
| ▶️ Play All | Start all visible video elements simultaneously |
| ⏸️ Pause All | Pause all video elements (appears when Play All is active) |
| 🔇 Videos | Mute / unmute all video elements on the page |
| 📊 Grid button | Switch to uniform grid layout |
| 🧱 Masonry button | Switch to aspect-ratio-aware masonry layout |
| Spacing slider | Adjust column gap in masonry mode (0–20px) |
| Hide file info checkbox | Hide filename, path, and metadata row; show only media |
| ⬇️ Auto-scroll | Start smooth continuous downward scrolling |
| Speed slider | Auto-scroll velocity (1 = slowest, 10 = fastest) |
| Click card | Select / deselect the file (blue border) |
| Ctrl + Click card | Add / remove from compare list (purple border) |
| Click & drag (empty area) | Box-select multiple cards at once |
| Ctrl + drag | Add to existing selection with box |
| Hover video card | Auto-play the video clip. Stops on mouse leave. |
| 🔍 / ▶️ icon on card | Open full-size modal preview with native controls |
| Right-click card | Context menu: Copy Name / Preview / Add to Compare / Add to Queue |
| Ctrl+A | Select all files in current view |
| Escape | Deselect all & stop auto-scroll |
| 📥 Download List | Export a plain-text list of all files with size and dimensions |
"The masonry + auto-scroll combination is perfect for reviewing large photo collections. Nothing else comes close for in-browser browsing."
"Custom queues are brilliant — I built a 'To Print' collection in minutes without moving a single file."
"Play All videos + auto-scroll and I have a self-running slideshow from my vacation folder. Incredible that it works entirely in a browser tab."
"Hide file info + masonry at 4px spacing gives you a gorgeous clean gallery. Best browser photo viewer I've found."
Combine masonry layout, spacing at 4–8px, and Hide file info for a clean gallery experience that fills the page with media edge to edge.
Set speed to 1–2, enable Play All, then start auto-scroll for a self-running video slideshow. Use fullscreen on the browser tab for the best effect.
Browse the whole folder first, then go back and select the standout shots. Add them to a "Best of" queue. Switch to the queue for a refined viewing session.
If you only want images, uncheck Videos before selecting the folder. Fewer cards = faster loading, smoother scrolling, and less memory.
When viewing a queue, click Download List to save a text file of the queue's filenames and paths before the session ends.
If you have two similar shots and only want to queue the better one, Ctrl+Click both, open Compare, then deselect the weaker one before adding to queue.
All queues are held in memory for the lifetime of the browser tab. Reloading the page clears everything. Use Download List to export filenames if you want to preserve a selection.
Each loaded image or video holds a decoded bitmap or video element in the browser's memory. For folders with thousands of high-resolution images, RAM usage can become significant. Scan specific subfolders rather than entire photo drives.
Because aspect ratios are only known after each image decodes on scroll, the masonry layout may reflow slightly. This is normal behaviour with CSS column masonry.
The File System Access API (folder picker, recursive reading) is only available in Chrome 86+ and Edge 86+. Firefox and Safari can use the fallback file input, but folder drag-and-drop may not work fully.
Browsers limit simultaneous media playback. If the folder contains a large number of videos, some may not start due to browser resource limits.
Media Viewer is purpose-built for visual media. For audio files or documents, use Bulk Delete or Bulk Move which support all file types.
mode: "read". The browser enforces this at the OS level — write operations are not possible through this permission grant.localStorage. Every session starts fresh with default settings.mode: "read" — a read-only permission that the browser enforces at the OS level. No write operation of any kind is possible through this tool. For file operations, use the dedicated Bulk Delete, Bulk Move, or Bulk Rename tools.object-fit: cover so all cards are the same size. Masonry mode preserves natural proportions and shows the full image. You can also click the 🔍 icon to see any image at full size in a modal.