A simple m3u
playlist editor, similar to xteve or threadfin, with epg
management.
Works with m3u, m3u8, m3u+ and Xtream codes api!
Feel free to open an issue on this repo, you can also join our Discord server to ask questions and get help, help others, suggest new ideas, and offer suggestions for improvements! 🎉
- Docker installed on your system.
- Xtream codes API login info or M3U URLs/files containing an M3U playlist of video streams.
- (Optionally) EPG URLs/files containing valid XMLTV data.
Check out the docs: m3u editor docs
Use the following compose example to get up and running.
services:
m3u-editor:
image: sparkison/m3u-editor:latest
container_name: m3u-editor
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
# This is used for websockets and in-app notifications
# Set to your machine/container IP where m3u editor will be accessed, if not localhost
- REVERB_HOST=localhost
# Uncomment and set to URL or IP if not localhost. Use full url, including http(s)
#- APP_URL=http://localhost
# Uncomment and set to true if using HTTPS
#- OCTANE_HTTPS=false
volumes:
# This will allow you to reuse the data across container recreates
# Format is: <host_directory_path>:<container_path>
# More information: https://docs.docker.com/reference/compose-file/volumes/
- ./data:/var/www/config
restart: unless-stopped
ports:
- 36400:36400 # app
- 36800:36800 # websockets/broadcasting
networks: {}
Or via Docker CLI:
docker run --name m3u-editor -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -e REVERB_HOST=localhost -v ./data:/var/www/config --restart unless-stopped -p 36400:36400 -p 36800:36800 sparkison/m3u-editor:latest
Access via: http://localhost:36400 (user = admin, password = admin)
To ensure the data is saved across builds, link an empty volume to: /var/www/config
within the container. This is where the env
file will be stored, along with the sqlite database and the application log files.
m3u editor is licensed under CC BY-NC-SA 4.0:
- BY: Give credit where credit’s due.
- NC: No commercial use.
- SA: Share alike if you remix.
For full license details, see LICENSE.