DEV Community

Cover image for How I Built Videly Ei8, Video Hosting Platform on a Shoestring Budget
Reza Purnama
Reza Purnama

Posted on

How I Built Videly Ei8, Video Hosting Platform on a Shoestring Budget

Hey everyone! πŸ‘‹ Today I want to share my journey of building Videly Ei8, a video hosting and sharing platform I recently launched on Google Play.

As a solo developer with limited funds, building a video platform is a massive challenge. Server processing and storage costs can skyrocket quickly. However, I found an architectural "hack" that allows the platform to run incredibly fast, efficiently, and support uploads of up to 2GB per file.

Here’s a breakdown of what I built and the tech behind it.

πŸ› οΈ The Tech Stack

The project essentially consists of a Web platform and an Android app (Native Webview):

  • Web Frontend & Backend: Pure PHP scripts, HTML/CSS, and vanilla JavaScript.
  • Android App: Native Android app utilizing an optimized webview.
  • Video Processing: FFmpeg (embedded directly inside the APK).
  • Storage & Delivery: AWS S3.

πŸ’‘ The Architecture Challenge: Web vs. App

If you try our web version at ei8.net, you can use it completely for free. However, this web version has a deliberate limitation: videos don't undergo metadata optimization. The raw video from your device is uploaded as-is.

Why didn't I integrate video processing on the web backend?
If I did, the upload pipeline would look like this:

  1. User uploads the video.
  2. My main server receives the file and processes/optimizes the video.
  3. Once done, the server sends it to AWS S3.

This flow requires a double upload process, which heavily wastes the user's time and drains my limited server resources.

⚑ The Solution: Client-Side FFmpeg Processing on Android

This is where the Videly Ei8 Android app shines. Even though the UI is essentially a webview of the main site, I embedded and integrated FFmpeg natively within the app itself.

The upload flow on the app is drastically more efficient:

  1. The user selects a video.
  2. The app instantly optimizes the video metadata locally on the user's device in the blink of an eye.
  3. The optimized video is uploaded directly from the user's device to AWS S3 (completely bypassing my PHP backend).

The Results?

  • Maximum Upload Speed: Because it connects directly to S3 via pre-signed URLs or direct SDK, users can upload massive files up to 2GB extremely fast.
  • Instant, Lag-Free Playback: Thanks to the client-side metadata optimization, the video streams instantly without buffering, regardless of its size.

🎯 Conclusion & Future Plans

I'm always looking for the best, most cost-effective ways to build powerful platforms on a reasonable budget. For now, Videly Ei8 is focused on the MP4 format with a 2GB per file upload limit. But this is just the beginning, and I believe massive updates are on the horizon.

I would be absolutely thrilled if you took some time to try the platform and share your feedback from a developer's perspective!

🌐 Try the Web version: https://ei8.net
πŸ“± Download the Android App: Videly Ei8 on Google Play

Thanks for reading, and let me know what you think in the comments! πŸ‘‡

Top comments (0)