# 📸 Media Slideshow A lightweight, privacy-focused web application for viewing photos and videos in a beautiful slideshow format. All processing happens locally in your browser - no uploads, no servers, no tracking. ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=flat&logo=html5&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=flat&logo=javascript&logoColor=%23F7DF1E) ## ✨ Features - 🖼️ **Fullscreen Display** - Images and videos fill your entire screen - 📅 **EXIF Data Extraction** - Automatically reads capture date and time from photos - 📍 **GPS Location Links** - Click to view photo locations on Google Maps (satellite view) - 🔍 **Image Zoom** - Mouse wheel zoom (1x - 5x) with pan support - ⌨️ **Keyboard Navigation** - Arrow keys or `<` `>` keys to navigate - 📂 **Folder Overview** - Virtual screens for easy navigation between albums - 🔒 **100% Private** - All processing happens locally in your browser - 💾 **Offline Ready** - Download and use completely offline - 📱 **Responsive** - Works on desktop, tablet, and mobile devices ## 🎨 Supported Formats ### Images (12 formats) - **JPEG** - `.jpg`, `.jpeg` - **PNG** - `.png` - **GIF** - `.gif` - **WebP** - `.webp` - **AVIF** - `.avif` - **HEIC/HEIF** - `.heic`, `.heif` (Apple format) - **BMP** - `.bmp` - **TIFF** - `.tiff`, `.tif` - **SVG** - `.svg` ### Videos (12 formats) - **MP4** - `.mp4` - **MOV** - `.mov` (QuickTime) - **AVI** - `.avi` - **MKV** - `.mkv` (Matroska) - **WebM** - `.webm` - **M4V** - `.m4v` - **WMV** - `.wmv` (Windows Media) - **FLV** - `.flv` (Flash Video) - **MPEG** - `.mpeg`, `.mpg` - **3GP** - `.3gp` (Mobile) - **OGV** - `.ogv` (Ogg Video) *Note: Both uppercase and lowercase file extensions are supported* ## 📁 Folder Structure Organize your media files with numeric prefixes for automatic sorting: ``` media/ ├── 01_Vacation_Hawaii/ │ ├── IMG_001.jpg │ ├── IMG_002.jpg │ └── video_001.mp4 ├── 02_Family_Reunion/ │ ├── photo1.jpg │ ├── photo2.jpg │ └── celebration.mov └── 03_Weekend_Trip/ ├── DSC_0001.jpg └── sunset.mp4 ``` **Rules:** - Folders should have numeric prefixes: `01_`, `02_`, `03_`, etc. - Files within folders are sorted alphabetically by filename - The prefix is removed in the display (e.g., `01_Vacation_Hawaii` → `Vacation Hawaii`) ## 🎮 Controls | Key | Action | |-----|--------| | `←` or `<` | Previous media | | `→` or `>` | Next media | | **Mouse Wheel** | Zoom in/out (images only) | | **Click Image** | Toggle zoom on/off | ## 🛠️ Technical Details ### Architecture - **Single HTML File** - Entire application in one self-contained file - **No Dependencies** - Only uses EXIF.js CDN for metadata extraction - **Client-Side Only** - No backend, no server, no data transmission - **File System Access API** - Uses browser's native folder selection ### Browser Compatibility - ✅ Chrome/Edge (recommended) - ✅ Firefox - ✅ Safari - ✅ Opera *Note: Requires a modern browser with File System Access support* ### Privacy & Security - 🔒 All files stay on your computer - 🚫 No data is uploaded to any server - 🔐 No tracking or analytics - 💾 Can be used completely offline - 🌐 No external dependencies (except EXIF.js CDN) ## 📋 Use Cases - **Photo Albums** - View vacation photos with date and location info - **Video Collections** - Watch family videos in sequence - **Photography Review** - Review EXIF data and GPS locations - **Offline Presentations** - Present media without internet connection - **Privacy-Conscious Viewing** - Keep your media completely private ## 📄 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.