From 580075e140fa47151056048e75cfa58e892733dc Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Mon, 27 Jun 2022 02:14:19 +0200 Subject: [PATCH 1/2] add cache folder --- ucast/service/storage.py | 11 +++++++++++ ucast/service/youtube.py | 7 ++++--- ucast_project/settings.py | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ucast/service/storage.py b/ucast/service/storage.py index dc46f36..e0a87ba 100644 --- a/ucast/service/storage.py +++ b/ucast/service/storage.py @@ -1,4 +1,5 @@ import os +import tempfile from pathlib import Path from django.conf import settings @@ -62,3 +63,13 @@ class Storage: if not cf.does_exist(): cf.create() return cf + + +class Cache: + def __init__(self): + self.dir_cache = settings.CACHE_ROOT + self.dir_ytdlp_cache = self.dir_cache / "yt_dlp" + os.makedirs(self.dir_ytdlp_cache, exist_ok=True) + + def create_tmpdir(self, prefix="dld") -> tempfile.TemporaryDirectory: + return tempfile.TemporaryDirectory(prefix=prefix + "_", dir=self.dir_cache) diff --git a/ucast/service/youtube.py b/ucast/service/youtube.py index 5068fae..1ae4479 100644 --- a/ucast/service/youtube.py +++ b/ucast/service/youtube.py @@ -2,7 +2,6 @@ import datetime import logging import re import shutil -import tempfile from dataclasses import dataclass from operator import itemgetter from pathlib import Path @@ -12,7 +11,7 @@ import feedparser import requests from yt_dlp import YoutubeDL -from ucast.service import scrapetube, util +from ucast.service import scrapetube, storage, util CHANID_REGEX = re.compile(r"""[-_a-zA-Z\d]{24}""") @@ -142,7 +141,8 @@ def download_audio( :param sponsorblock: Enable Sponsorblock :return: VideoDetails """ - tmpdir = tempfile.TemporaryDirectory(prefix="ucast_") + cache = storage.Cache() + tmpdir = cache.create_tmpdir() tmp_dld_file = Path(tmpdir.name) / "audio.mp3" ydl_params = { @@ -151,6 +151,7 @@ def download_audio( {"key": "FFmpegExtractAudio", "preferredcodec": "mp3"}, ], "outtmpl": str(tmp_dld_file), + "cachedir": str(cache.dir_ytdlp_cache), } if sponsorblock: diff --git a/ucast_project/settings.py b/ucast_project/settings.py index 24d64bb..3e16b0a 100644 --- a/ucast_project/settings.py +++ b/ucast_project/settings.py @@ -208,6 +208,7 @@ USE_TZ = True STATIC_URL = "static/" STATIC_ROOT = get_env_path("STATIC_ROOT", BASE_DIR / "static") DOWNLOAD_ROOT = get_env_path("DOWNLOAD_ROOT", BASE_DIR / "data") +CACHE_ROOT = get_env_path("CACHE_ROOT", BASE_DIR / "cache") STATICFILES_DIRS = [resources.path("ucast", "static")] From caefa4dd37bef36a5aa0354ba4a7f10992a9250c Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Mon, 27 Jun 2022 02:14:31 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Bump=20version:=200.1.0=20=E2=86=92=200.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- pyproject.toml | 2 +- ucast/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index d78ccd0..1da39e5 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.0 +current_version = 0.1.1 commit = True tag = True diff --git a/pyproject.toml b/pyproject.toml index 871092f..de2bdfa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ucast" -version = "0.1.0" +version = "0.1.1" description = "YouTube to Podcast converter" authors = ["Theta-Dev "] packages = [ diff --git a/ucast/__init__.py b/ucast/__init__.py index 52428bd..93b1944 100644 --- a/ucast/__init__.py +++ b/ucast/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.0" +__version__ = "0.1.1" def template_context(request):