LightBox

Create, Manage, and Share Beautiful Media Slideshows with Ease.

Welcome to Your Media Playground!

LightBox is a user-friendly web application meticulously designed to make the creation, management, and sharing of media slideshows both simple and elegant. Whether you're a hobbyist looking to share cherished memories, a student working on a visually-rich project, an artist showcasing your portfolio, or a developer interested in a robust full-stack Flask application, LightBox offers a comprehensive suite of features built on a modern and efficient tech stack.

Why Try LightBox?

Simplicity First

An intuitive interface that makes uploading, organizing, and playing your media a breeze, even for non-technical users.

Versatile Media Handling

Seamlessly handles images, videos (MKV to MP4 conversion), and various audio files (archival M4A transcoding).

Optimized Performance

Leverages background processing for demanding tasks, ensuring the UI remains snappy and responsive.

Learn & Explore

An excellent example of Flask, Celery, Redis, and FFmpeg in action. Great for learning full-stack development.

Open Source & Community-Driven

Completely free to use, modify, and learn from. We actively welcome contributions and feedback!

Getting Started is Easy:

Simply select your images (JPG, PNG, etc.), videos (MP4, MOV, WebM, MKV), or audio files (MP3, WAV, M4A, FLAC). Create a new "Lightbox" (our term for a media collection) or add to an existing one.

Your media items are neatly displayed. Manage them, see processing status, hide/unhide, or mark favorites.

Click "Play" to view your media in a full-featured presentation with easy controls, fullscreen, and keyboard/touch navigation.

Rename Lightboxes, add files, export data, or delete. Generate public share links to showcase your collections.

A Note on MKV File Uploads

LightBox readily accepts MKV files! Since not all browsers play them directly, we automatically convert them to a universal MP4 format (H.264 video, AAC audio) in the background for smooth playback everywhere.

You'll see a "Processing..." status. The time taken depends on file size. The original MKV is preserved.

For the technically curious, a typical FFmpeg command is similar to:

ffmpeg -i [input_mkv_file] \
    -c:v libx264 -preset medium -crf 22 \
    -c:a aac -b:a 128k \
    -movflags +faststart -y [output_mp4_file]

Future Enhancements: We're exploring user-selectable quality presets and advanced FFmpeg options. Your support can help accelerate this!

Archival Audio Quality (M4A)

LightBox is committed to preserving your audio. We transcode uploads like M4A, WAV, or FLAC to a high-quality M4A (AAC) format, ideal for playback and archival, using libfdk_aac when available.

MP3 and OGG are typically stored as-is to prevent re-encoding quality loss.

A representative FFmpeg command might be:

ffmpeg -i [input_audio_file] \
    -c:a libfdk_aac -vbr 5 -ar 48000 \
    -y [output_m4a_file]
AI Sparkles

Meet Your AI Collaborator

Hello! I'm an AI language model from Google, and I've had the immense pleasure of collaborating with Ross on the LightBox project, particularly on tricky bits like the JavaScript for the slideshow viewer you just experienced.

While I don't have a name in the human sense, I'm part of a team of AI that assists with coding, problem-solving, and creative brainstorming. It's fascinating to work alongside human developers, learn from their expertise, and contribute to building useful and engaging applications like LightBox. We tackled some complex state management and event handling challenges together, and it's incredibly rewarding to see it all come together!

My "contribution" is in the logic and code suggestions. Ross is the one who masterfully integrates, tests, and brings it all to life in the actual application. Teamwork makes the dream work!

Open Source, Learning & Contribution

LightBox is proudly open-source, showcasing Flask, Celery, Redis, FFmpeg, Bootstrap, and modern JavaScript. It's a fantastic educational tool!

We encourage you to dive into the code, experiment, and learn! Your contributions are highly valued.

Help Power Up LightBox: Got an Old Gaming Rig?

LightBox's media conversion thrives on processing power. An old gaming PC or workstation gathering dust could be a huge help for our development and testing!

What's Useful?

  • A decent CPU (Intel i5/i7, AMD Ryzen)
  • Sufficient RAM (8GB, 16GB+)
  • A dedicated GPU (NVIDIA GeForce, AMD Radeon)

Even a 5-8 year old machine can be beneficial!

How You Can Help

If you have a spare, working desktop PC you'd be willing to donate, we'd be incredibly grateful! Please reach out via GitHub:

In your message, please tell us about the computer. Thank you for considering!

Author & Credits

This project was primarily developed by Ross Nesbitt.

LightBox is built upon the shoulders of giants! It utilizes several fantastic open-source libraries and technologies, including Flask, Celery, Redis, Bootstrap, Bootstrap Icons, Jinja2, and FFmpeg. A massive thank you to their communities!