EFILLA is a lightweight, PHP-based web application for managing and streaming media using M3U8 playlists. It’s designed as a minimal streaming service backend with user authentication, admin controls, and a clean UI for browsing and playing movies or series. Think of it as a simple, customizable foundation for a private streaming platform.
- User Authentication: Login and registration system with role-based access (ADMIN/USER).
- Media Management: Admins can add, edit, delete, and reorder movies/series stored in a flat file (
f.txt
). - M3U8 Streaming: Supports streaming M3U8 playlists for movies and series using Video.js.
- Responsive UI: Glassmorphism-inspired design with a grid-based library and a player with custom controls.
- Drag-and-Drop Sorting: Admins can reorder media entries via a drag-and-drop interface.
- Series Support: Handles multi-episode series with episode lists loaded from text files.
Below are screenshots showcasing the EFILLA platform's interface:
-
Login Page: Clean and modern login interface for user authentication.
-
Library View: Grid-based library displaying movies and series with hover effects.
-
Player Page: Video player with custom controls and series episode panel (when applicable).
-
Admin Panel: Interface for admins to manage media entries with drag-and-drop sorting.
Live Preview: Check out the live demo at https://eddit.me//.
- Backend: PHP (session-based auth, file-based storage).
- Frontend: HTML, CSS (glassmorphism), JavaScript with Video.js for streaming and SortableJS for drag-and-drop.
- Storage: Flat file (
f.txt
) for media data, JSON (users.json
) for user data. - External Libraries:
- Video.js for M3U8 playback.
- SortableJS for drag-and-drop functionality.
-
User Flow:
- Users register (
register.php
) or log in (login.php
) to access the library (index.php
). - The library displays media entries (movies, series, or "top" items) from
f.txt
, grouped by sections (e.g.,--- MOVIES ---
). - Clicking a movie redirects to
player.php
with the M3U8 URL. For series, it loads a text file (e.g.,seriale/pati.txt
) with episode data. - The player uses Video.js with custom controls for play/pause, seeking, volume, and fullscreen.
- Users register (
-
Admin Flow:
- Admins (role:
ADMIN
inusers.json
) accessadmin.php
to manage media. - Add new entries (title, type, category, URL, thumbnail) via a form, stored in
f.txt
. - Edit or delete existing entries via AJAX (
ajax.php
). - Reorder entries with drag-and-drop, saved via AJAX.
- Admins (role:
-
Data Structure:
f.txt
: Media entries in the formattitle | type | category | url | thumbnail
, grouped by sections (e.g.,--- MOVIES ---
).users.json
: Stores user data (username
,pass
(base64-encoded),email
,role
).- Series episodes: Stored in text files (e.g.,
seriale/pati.txt
) with formatepisode_name | url
.
-
Requirements:
- PHP 7.4+ with
session
andjson
extensions. - Web server (e.g., Apache, Nginx).
- Write permissions for
f.txt
andusers.json
.
- PHP 7.4+ with
-
Installation:
git clone https://github.com/edditdev/EFILLA-VOD cd efilla
- Copy files to your web server’s root (e.g.,
/var/www/html
). - Ensure
f.txt
andusers.json
are writable (chmod 664
or equivalent). - Create a
seriale/
directory for series episode files if needed.
- Copy files to your web server’s root (e.g.,
-
Configuration:
- Edit
users.json
to add initial users (passwords are base64-encoded, e.g.,MTIz
=123
). - Update
f.txt
with your media entries. Example:--- MOVIES --- My Movie | film | Action | https://example.com/stream.m3u8 | https://example.com/thumb.jpg --- SERIES --- My Series | serial | Drama | seriale/myseries.txt | https://example.com/series_thumb.jpg
- For series, create episode files in
seriale/
(e.g.,myseries.txt
):Episode 1 | https://example.com/ep1.m3u8 Episode 2 | https://example.com/ep2.m3u8
- Edit
-
Access:
- Open
http://your-server/register.php
to create a user. - Log in via
login.php
to access the library (index.php
). - Admins can manage content via
admin.php
.
- Open
- Users: Browse the library, click tiles to watch movies or series. Series show an episode list in the player.
- Admins: Use the admin panel to add/edit/delete media, reorder entries, and manage the library structure.
- Streaming: Ensure M3U8 URLs are valid and accessible. The player supports HLS streaming via Video.js.
- Storage: Flat file (
f.txt
) and JSON (users.json
) limit scalability. Consider a database for larger setups. - Security: Basic auth with base64-encoded passwords. For production, use proper hashing (e.g.,
password_hash
) and HTTPS. - No Search: Library lacks search/filter functionality.
- Single Format: Only supports M3U8 streaming.
Feel free to fork, tweak, or extend! Submit issues or PRs for bugs, features, or improvements. Ideas:
- Add a database backend (e.g., MySQL).
- Implement search/filter in the library.
- Enhance security with proper password hashing.
- Support additional media formats.
MIT License. Use it, modify it, share it.