A modern web application for managing M3U/M3U8 IPTV playlists. Upload, edit, organize, and export your playlists with an intuitive dark-themed interface.
- Playlist Upload - Drag & drop or click to upload M3U/M3U8 files
- Channel Editor - Add, edit, and delete channels with ease
- Group Management - Organize channels into categories
- Search & Filter - Find channels by name or group
- Bulk Operations - Select multiple channels for delete or move
- Direct Links - Get shareable URLs for IPTV applications
- Download - Export edited playlists as valid M3U files
- Dark Theme - Modern, mobile-friendly dark interface
- Unsaved Changes Tracking - Warning prompts before losing edits
- Python 3.10+
- pip
-
Clone the repository
git clone https://github.com/ZxPwdz/M3U-Manager.git cd M3U-Manager -
Install dependencies
cd backend pip install -r requirements.txt -
Run the application
python main.py
-
Open
frontend/index.htmlin your browser, or serve it with a web server
For production, use Nginx as a reverse proxy and systemd for process management. See the included m3u-manager.service file.
- Upload - Go to the Upload tab and drag & drop your M3U file
- Edit - Click "Edit" on any playlist to manage channels
- Organize - Use bulk operations to move channels between groups
- Save - Click "Save Changes" to persist your edits
- Download - Export your edited playlist as an M3U file
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/playlists/upload |
Upload M3U file |
| GET | /api/playlists |
List all playlists |
| GET | /api/playlists/{id} |
Get playlist details |
| GET | /api/playlists/{id}/download |
Download playlist |
| DELETE | /api/playlists/{id} |
Delete playlist |
| POST | /api/playlists/{id}/channels |
Add channel |
| PUT | /api/playlists/{id}/channels/{cid} |
Update channel |
| DELETE | /api/playlists/{id}/channels/{cid} |
Delete channel |
- Backend - Python, FastAPI, SQLAlchemy, SQLite
- Frontend - Alpine.js, Tailwind CSS, Vanilla JS
- Server - Uvicorn (dev), Nginx + systemd (production)
m3u-manager/
├── backend/
│ ├── main.py # FastAPI application
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ ├── database.py # Database setup
│ ├── m3u_parser.py # M3U parsing/generation
│ ├── requirements.txt # Python dependencies
│ └── routers/
│ ├── playlists.py # Playlist endpoints
│ └── channels.py # Channel endpoints
├── frontend/
│ ├── index.html # Single page application
│ ├── css/styles.css # Custom styles
│ └── js/
│ ├── app.js # Main application
│ ├── api.js # API layer
│ └── utils.js # Helper functions
└── m3u-manager.service # Systemd service file
MIT License - Feel free to use, modify, and distribute.
Created by ZxPwdz
