diff --git a/scripts/potoken_provider/setup_pot_provider.sh b/scripts/potoken_provider/setup_pot_provider.sh index 64b3060..8d27e75 100755 --- a/scripts/potoken_provider/setup_pot_provider.sh +++ b/scripts/potoken_provider/setup_pot_provider.sh @@ -7,7 +7,7 @@ GEN_SCRIPT="$TARGET_DIR/build/generate_once.js" # Ensure the server directory exists if [ ! -d "$TARGET_DIR" ]; then - echo "Error: PO Token provider server directory is missing! Please run update_pot_provider.sh first." + echo "Error: PO Token provider server directory is missing! Please run scripts/update_pot_provider.sh first." exit 1 fi @@ -23,18 +23,19 @@ else fi # Check if build directory exists and if transpiling is needed -if [ ! -d "build" ] || [ "src" -nt "$GEN_SCRIPT" ]; then +if [ ! -d "build" ]; then echo "Build directory missing or outdated. Running transpilation..." npx tsc else echo "Build directory is up to date. Skipping transpilation." fi -# Ensure the script exists after transpilation -if [ ! -f "$GEN_SCRIPT" ]; then - echo "Error: PO Token script not found after attempting transpilation." - exit 1 -fi + +## Ensure the script exists after transpilation +#if [ ! -f "$GEN_SCRIPT" ]; then +# echo "Error: PO Token script not found after attempting transpilation." +# exit 1 +#fi # Confirm success diff --git a/src/auto_archiver/modules/generic_extractor/__manifest__.py b/src/auto_archiver/modules/generic_extractor/__manifest__.py index 956a924..a5d33d4 100644 --- a/src/auto_archiver/modules/generic_extractor/__manifest__.py +++ b/src/auto_archiver/modules/generic_extractor/__manifest__.py @@ -74,9 +74,9 @@ If you are having issues with the extractor, you can review the version of `yt-d "default": "inf", "help": "Use to limit the number of videos to download when a channel or long page is being extracted. 'inf' means no limit.", }, - "update_pots": { - "default": False, - "help": "If set, will run the script to update the pot generation script.", + "pot_provider": { + "default": "bgutils", + "help": "The Proof of origin provider method.", }, "extractor_args": { "default": {}, diff --git a/src/auto_archiver/modules/generic_extractor/generic_extractor.py b/src/auto_archiver/modules/generic_extractor/generic_extractor.py index d46e64f..11d969d 100644 --- a/src/auto_archiver/modules/generic_extractor/generic_extractor.py +++ b/src/auto_archiver/modules/generic_extractor/generic_extractor.py @@ -71,23 +71,21 @@ class GenericExtractor(Extractor): def setup_token_script(self): """Setup PO Token provider https://github.com/Brainicism/bgutil-ytdlp-pot-provider.""" - # Determine the default location for the transpiled PO token script. - default_script = os.path.join( - # "scripts", "potoken_provider", "bgutil-server", "build", "generate_once.js" - "scripts", "potoken_provider", "bgutil-provider", "server", "build", "generate_once.js" - ) - # Check if the PO token script exists. if not, trigger the script generation. - if not os.path.exists(default_script): - logger.info("PO Token script not found. Running setup...") + if self.pot_provider == "bgutils": + + # Check if the PO token generation script exists, set it up if not. try: subprocess.run(["bash", "scripts/potoken_provider/setup_pot_provider.sh"], check=True) except subprocess.CalledProcessError as e: logger.error(f"Failed to setup PO Token script: {e}") return - # Use the PO Token script in yt-dlp to fetch tokens on demand. - self.extractor_args.setdefault("youtube", {})["getpot_bgutil_script"] = default_script - logger.info(f"Using PO Token script at: {default_script}") + # Use the PO Token script in yt-dlp to fetch tokens on demand. + pot_script = os.path.join( + "scripts", "potoken_provider", "bgutil-provider", "build", "generate_once.js" + ) + self.extractor_args.setdefault("youtube", {})["getpot_bgutil_script"] = pot_script + def suitable_extractors(self, url: str) -> Generator[str, None, None]: """ @@ -446,8 +444,6 @@ class GenericExtractor(Extractor): "--write-subs" if self.subtitles else "--no-write-subs", "--write-auto-subs" if self.subtitles else "--no-write-auto-subs", "--live-from-start" if self.live_from_start else "--no-live-from-start", - # TODO - "--verbose" ] # proxy handling diff --git a/tests/extractors/test_generic_extractor.py b/tests/extractors/test_generic_extractor.py index 2089007..76395fb 100644 --- a/tests/extractors/test_generic_extractor.py +++ b/tests/extractors/test_generic_extractor.py @@ -29,6 +29,7 @@ class TestGenericExtractor(TestExtractorBase): "proxy": None, "cookies_from_browser": False, "cookie_file": None, + "pot_provider": False, } def test_load_dropin(self):