From 7b94a4fabdd6a5636e5ead94085699bdd5cf0a7f Mon Sep 17 00:00:00 2001 From: Alex Shnitman Date: Wed, 26 Jan 2022 08:25:53 +0200 Subject: [PATCH] change default path of queue persistence files (closes #110) --- Dockerfile | 3 +-- README.md | 5 ++--- app/ytdl.py | 5 ++++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index e99dd6f..d148d02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,8 +25,7 @@ COPY app ./app COPY --from=builder /metube/dist/metube ./ui/dist/metube ENV DOWNLOAD_DIR /downloads -ENV STATE_DIR /state +ENV STATE_DIR /downloads/.metube VOLUME /downloads -VOLUME /state EXPOSE 8081 CMD ["python3", "app/main.py"] diff --git a/README.md b/README.md index f2cd0e2..f7a4e08 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Web GUI for youtube-dl (using the [yt-dlp](https://github.com/yt-dlp/yt-dlp) for ## Run using Docker ```bash -docker run -d -p 8081:8081 -v /path/to/downloads:/downloads -v /path/to/state:/state --user 1001:1001 alexta69/metube +docker run -d -p 8081:8081 -v /path/to/downloads:/downloads --user 1001:1001 alexta69/metube ``` ## Run using docker-compose @@ -27,7 +27,6 @@ services: - "8081:8081" volumes: - /path/to/downloads:/downloads - - /path/to/state:/state # optional, if you want download queue persistence between re-creations of the container ``` ## Configuration via environment variables @@ -35,7 +34,7 @@ Certain values can be set via environment variables, using the `-e` parameter on * __DOWNLOAD_DIR__: path to where the downloads will be saved. Defaults to `/downloads` in the docker image, and `.` otherwise. * __AUDIO_DOWNLOAD_DIR__: path to where audio-only downloads will be saved, if you wish to separate them from the video downloads. Defaults to the value of `DOWNLOAD_DIR`. -* __STATE_DIR__: path to where the queue persistence files will be saved. Defaults to `/state` in the docker image, and `.` otherwise. +* __STATE_DIR__: path to where the queue persistence files will be saved. Defaults to `/downloads/.metube` in the docker image, and `.` otherwise. * __URL_PREFIX__: base path for the web server (for use when hosting behind a reverse proxy). Defaults to `/`. * __OUTPUT_TEMPLATE__: the template for the filenames of the downloaded videos, formatted according to [this spec](https://github.com/yt-dlp/yt-dlp/blob/master/README.md#output-template). Defaults to `%(title)s.%(ext)s`. * __YTDL_OPTIONS__: Additional options to pass to youtube-dl, in JSON format. [See available options here](https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/YoutubeDL.py#L176). They roughly correspond to command-line options, though some do not have exact equivalents here, for example `--recode-video` has to be specified via `postprocessors`. Also note that dashes are replaced with underscores. diff --git a/app/ytdl.py b/app/ytdl.py index deb745c..6e406b0 100644 --- a/app/ytdl.py +++ b/app/ytdl.py @@ -136,9 +136,12 @@ class Download: class PersistentQueue: def __init__(self, path): - self.path = path + pdir = os.path.dirname(path) + if not os.path.isdir(pdir): + os.mkdir(pdir) with shelve.open(path, 'c'): pass + self.path = path self.dict = OrderedDict() def load(self):