{"id":49394793,"url":"https://github.com/ashref-dev/es-de-custom-cover-generator","last_synced_at":"2026-04-28T15:03:36.636Z","repository":{"id":293513679,"uuid":"984282597","full_name":"Ashref-dev/es-de-custom-cover-generator","owner":"Ashref-dev","description":"Create perfectly structured media files for Emulation Station Desktop Edition with ease, and edit your existing games too!","archived":false,"fork":false,"pushed_at":"2025-12-15T21:59:05.000Z","size":6540,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-19T06:14:15.797Z","etag":null,"topics":["emulation-station","es-de","nextjs","retrogaming"],"latest_commit_sha":null,"homepage":"https://esde-manager.ashref.tn","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ashref-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-05-15T17:17:25.000Z","updated_at":"2025-12-15T21:59:09.000Z","dependencies_parsed_at":"2025-06-21T19:30:04.913Z","dependency_job_id":"3c7265ac-4286-49a8-a0ac-6d45e509538a","html_url":"https://github.com/Ashref-dev/es-de-custom-cover-generator","commit_stats":null,"previous_names":["ashref-dev/es-de-custom-cover-generator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ashref-dev/es-de-custom-cover-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fes-de-custom-cover-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fes-de-custom-cover-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fes-de-custom-cover-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fes-de-custom-cover-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ashref-dev","download_url":"https://codeload.github.com/Ashref-dev/es-de-custom-cover-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fes-de-custom-cover-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32385943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emulation-station","es-de","nextjs","retrogaming"],"created_at":"2026-04-28T15:03:02.456Z","updated_at":"2026-04-28T15:03:36.630Z","avatar_url":"https://github.com/Ashref-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![ES-DE Media Manager](readme.png)\n\n\u003cdiv align=\"center\"\u003e\n\n**🎮 The Ultimate Media Management Tool for Emulation Station Desktop Edition**\n\n[![Website](https://img.shields.io/badge/Website-esde--manager.ashref.tn-blue?style=for-the-badge)](https://esde-manager.ashref.tn/) [![Open Source](https://img.shields.io/badge/Open%20Source-100%25-green?style=for-the-badge)](https://github.com/Ashref-dev/es-de-custom-cover-generator) [![Privacy First](https://img.shields.io/badge/Privacy-100%25%20Local-orange?style=for-the-badge)](#-100-client-side-processing)\n\n[![Next.js](https://img.shields.io/badge/Next.js-15-black?style=for-the-badge\u0026logo=next.js)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?style=for-the-badge\u0026logo=typescript)](https://www.typescriptlang.org/)\n\n\u003c/div\u003e\n\n---\n\n## 🎯 The Problem\n\nManaging media files for **Emulation Station Desktop Edition (ES-DE)** can be frustrating:\n\n- 🔍 **Poor Scraping Results**: Screen scrapers often return low-quality or incorrect images\n- 📁 **Complex File Management**: Manually organizing files into correct folder structures\n- 🖼️ **No Visual Management**: Difficult to preview and manage your game media collection  \n- 💾 **File System Complexity**: Copying/pasting files manually into nested directories\n- 🎨 **Limited Customization**: Hard to replace or update game covers, logos, and videos\n- 📱 **No User-Friendly Interface**: Existing tools require technical knowledge\n\n## ✨ The Solution\n\n**ES-DE Media Manager** is a modern, web-based tool that makes managing your retro game collection effortless:\n\n## 🚀 Key Features\n\n### 🎯 Core Features\n- **�️ Drag \u0026 Drop Interface**: Simply drag images/videos or paste URLs\n- **🎨 Visual Media Management**: Preview all media types in an intuitive interface  \n- **🔧 Built-in Optimization**: Optional image compression to save storage space\n- **🔒 100% Private**: All processing happens locally - your files never leave your device\n- **🆓 Completely Free**: Open source and free to use forever\n- **🌐 No Installation Required**: Works directly in your web browser\n\n### 🔍 Direct File System Integration\n- **Browser Folder Access**: Grant permission to your ES-DE media folder directly in the browser\n- **Automatic Updates**: Changes are applied instantly to your existing media library\n- **Real-time Sync**: No file copying or manual organization required\n- **Smart Detection**: Automatically detects existing games and media structure\n\n### � **Direct File System Integration**\n- **Browser Folder Access**: Grant permission to your ES-DE media folder directly in the browser\n- **Automatic Updates**: Changes are applied instantly to your existing media library\n- **Real-time Sync**: No file copying or manual organization required\n- **Smart Detection**: Automatically detects existing games and media structure\n\n### 🎮 **Supported Media Types**\n\n- **Box Art / Covers**: Game box art and cover images\n- **Logos / Marquees**: Game logos and title graphics  \n- **Screenshots**: In-game screenshots\n- **3D Boxes**: 3D rendered box art\n- **Title Screens**: Game title screens\n- **Videos**: Game preview videos and trailers\n- **Fan Art**: Custom fan-created artwork\n- **Physical Media**: Disc/cartridge images\n\n### 🏆 **Supported Platforms**\n\nSupports **50+ gaming platforms** including:\n- Nintendo (NES, SNES, N64, GameCube, Wii, Switch)\n- PlayStation (PS1, PS2, PS3, PS4, PS5, PSP, Vita)\n- Xbox (Original, 360, One, Series X/S)\n- Sega (Genesis, Saturn, Dreamcast, Game Gear)\n- Arcade (MAME, FinalBurn Neo, Capcom, SNK)\n- And many more retro systems!\n\n---\n\n## 🌟 How It Works\n\n### 1. **Generator Mode** \nCreate new media collections from scratch:\n- Upload your media files (drag \u0026 drop or paste URLs)\n- Select your gaming platform and organize files  \n- Generate perfectly structured ES-DE media folders\n- Grant browser access to your ES-DE `downloaded_media` folder\n- Files are automatically placed in the correct locations\n\n### 2. **Browse Mode**\nManage your existing ES-DE media collection with direct file system integration:\n\n#### 📂 **Getting Started with Browse Mode**\n1. **Navigate to your ES-DE media folder**:\n   - On macOS: `~/ES-DE/downloaded_media`  \n   - On Windows: `%USERPROFILE%\\ES-DE\\downloaded_media`\n   - On Linux: `~/.emulationstation/downloaded_media`\n\n2. **Grant folder access**:\n   - Click \"Browse Collection\" in the app\n   - Select your `downloaded_media` folder (not individual console folders)\n   - Accept the browser permission dialog\n\n3. **Manage your collection**:\n   - Preview all media types in an intuitive interface\n   - Replace, update, or add new media files instantly\n   - Changes are automatically saved to the correct locations\n   - No manual file copying or organization required\n\n\u003e ⚠️ **Important**: Make sure to select the main `downloaded_media` folder, not individual console folders within it.\n\n---\n\n## 🚀 Quick Start\n\n### Option 1: Use the Web App (Recommended)\n**👉 [Open ES-DE Media Manager](https://esde-manager.ashref.tn/)**\n\nNo installation required! Works in any modern web browser.\n\n#### For Browse Mode:\n```\n1. Navigate to your ES-DE media folder:\n   • macOS: ~/ES-DE/downloaded_media\n   • Windows: %USERPROFILE%\\ES-DE\\downloaded_media  \n   • Linux: ~/.emulationstation/downloaded_media\n\n2. Click \"Browse Collection\" and select the downloaded_media folder\n3. Grant browser permission when prompted\n4. Start managing your media collection!\n```\n\n### Option 2: Run Locally\n\n```bash\n# Clone the repository\ngit clone https://github.com/Ashref-dev/es-de-custom-cover-generator.git\ncd es-de-custom-cover-generator\n\n# Install dependencies\nbun install\n\n# Start development server\nbun run dev\n\n# Open http://localhost:3000\n```\n\n---\n\n## 🔒 100% Client-Side Processing\n\nYour privacy is our priority:\n\n- ✅ **No Server Uploads**: Files are processed entirely in your browser\n- ✅ **No Data Collection**: We don't collect or store any personal information\n- ✅ **Offline Capable**: Works without an internet connection (after initial load)\n- ✅ **No Registration**: Use immediately without creating accounts\n- ✅ **Open Source**: Fully transparent code you can audit yourself\n\n---\n\n## 🛠️ Development\n\n### Tech Stack\n- **Framework**: Next.js 15 with App Router\n- **Language**: TypeScript\n- **Styling**: Tailwind CSS\n- **UI Components**: Radix UI + shadcn/ui\n- **File Processing**: Web APIs (FileSystem, Canvas, etc.)\n- **Image Optimization**: Built-in image compression\n- **Build Tool**: Turbopack\n\n### Project Structure\n```\n├── app/                 # Next.js app router pages\n├── components/          # React components\n│   ├── browser/        # Browse mode components\n│   └── ui/             # UI component library\n├── lib/                # Utilities and constants  \n├── public/logos/       # Platform logos\n└── types/              # TypeScript definitions\n```\n\n### Development Commands\n```bash\nbun run dev             # Start development server\nbun run build           # Build for production\nbun run lint            # Run ESLint\nbun run format          # Format with Prettier\nbun run dev:debug       # Start with debugger attached\n```\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n1. **🐛 Report Issues**: Found a bug? [Open an issue](https://github.com/Ashref-dev/es-de-custom-cover-generator/issues)\n2. **💡 Suggest Features**: Have an idea? [Start a discussion](https://github.com/Ashref-dev/es-de-custom-cover-generator/discussions)\n3. **🔧 Submit Pull Requests**: \n   - Fork the repository\n   - Create a feature branch\n   - Make your changes\n   - Submit a pull request\n\n### Development Setup\n1. Fork and clone the repository\n2. Install dependencies: `bun install`\n3. Start development server: `bun run dev`\n4. Make your changes and test\n5. Submit a pull request\n\n---\n\n## 📸 Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003e🖼️ Click to view screenshots\u003c/summary\u003e\n\n### Home Page\n![Home Page](docs/screenshots/home.png)\n\n### Generator Mode\n![Generator](docs/screenshots/generator.png)\n\n### Browse Mode  \n![Browse](docs/screenshots/browse.png)\n\n### Media Management\n![Media Management](docs/screenshots/media-management.png)\n\n\u003c/details\u003e\n\n---\n\n## ❤️ Support the Project\n\nIf you find this project helpful:\n\n- ⭐ **Star the repository** to show your support\n- 🐛 **Report issues** to help improve the tool\n- 🔄 **Share with others** in the retro gaming community\n- 💡 **Contribute features** or improvements\n- ☕ **[Buy me a coffee](https://ashref.tn)** to fuel more development\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 👨‍💻 About the Author\n\n**Ashref Ben Abdallah**\n- 🌐 Website: [ashref.tn](https://ashref.tn)\n- 🐙 GitHub: [@Ashref-dev](https://github.com/Ashref-dev)\n- 🎮 Passionate retro gaming enthusiast and developer\n\n---\n\n## 🙏 Acknowledgments\n\n- **EmulationStation Desktop Edition** team for creating an amazing frontend\n- The **retro gaming community** for inspiration and feedback\n- **Open source contributors** who make projects like this possible\n- **Beta testers** who helped shape the user experience\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🎮 Happy Gaming! 🎮**\n\n*Made with ❤️ for the retro gaming community*\n\n[![Website](https://img.shields.io/badge/Try%20it%20now-esde--manager.ashref.tn-blue?style=for-the-badge\u0026logo=web)](https://esde-manager.ashref.tn/)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashref-dev%2Fes-de-custom-cover-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashref-dev%2Fes-de-custom-cover-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashref-dev%2Fes-de-custom-cover-generator/lists"}