Files
m3u8dl/m3u8downloaderd/README.md
T

51 lines
1.6 KiB
Markdown

# m3u8downloaderd
`m3u8downloaderd` is an in-memory local-network web interface for the adjacent
`N_m3u8DL_py` package. It requires Python 3.10+ and a system `ffmpeg`.
## Docker
From the repository root, start the service and build its image when needed:
```bash
docker-compose up
```
Open `http://127.0.0.1:8000`. Downloaded files are written to the repository's
`downloads/` directory. Use `docker-compose down` to stop the service.
Install both local packages into the same environment:
```bash
python -m pip install -e ./N_m3u8DL_py -e ./m3u8downloaderd
```
Start the service:
```bash
python -m m3u8downloaderd \
--host 0.0.0.0 \
--port 8000 \
--download-root /tmp \
--max-active-downloads 2 \
--max-active-ffmpeg 2
```
The service exposes no authentication. Use it only on a trusted network. The
folder chooser is restricted to `--download-root` and its descendants.
Tasks, progress, history, and settings exist only while the process is running;
restarting the service clears them. Downloaded media files remain on disk.
`--max-active-downloads` sets the initial video download concurrency.
`--max-active-ffmpeg` sets the initial ffmpeg post-processing concurrency; when
omitted, it defaults to the download concurrency. Both can be changed while the
service is running from the Settings tab, independently, with a supported range
of 1 to 32. Finished segment downloads enter a FIFO ffmpeg queue so slow media
processing does not occupy download slots. Runtime logs are available in the
Log tab and remain in memory only.
Run tests from the repository root:
```bash
PYTHONPATH=N_m3u8DL_py/src:m3u8downloaderd/src python -m pytest m3u8downloaderd/tests
```