diff --git a/test/test_pot/test_pot_builtin_memorycache.py b/test/test_pot/test_pot_builtin_memorycache.py index a42d7eeadc..d092a9c450 100644 --- a/test/test_pot/test_pot_builtin_memorycache.py +++ b/test/test_pot/test_pot_builtin_memorycache.py @@ -4,7 +4,7 @@ from collections import OrderedDict import pytest from yt_dlp.extractor.youtube.pot._provider import IEContentProvider, BuiltInIEContentProvider from yt_dlp.utils import bug_reports_message -from yt_dlp.extractor.youtube.pot.builtin.cache.memory import MemoryLRUPCP, memorylru_preference, initialize_global_cache +from yt_dlp.extractor.youtube.pot._builtin.memory_cache import MemoryLRUPCP, memorylru_preference, initialize_global_cache from yt_dlp.version import __version__ from yt_dlp.globals import _pot_memory_cache, _pot_cache_providers diff --git a/test/test_pot/test_pot_builtin_utils.py b/test/test_pot/test_pot_builtin_utils.py index d65839c588..e4a860fd3b 100644 --- a/test/test_pot/test_pot_builtin_utils.py +++ b/test/test_pot/test_pot_builtin_utils.py @@ -4,7 +4,7 @@ from yt_dlp.extractor.youtube.pot.provider import ( ) -from yt_dlp.extractor.youtube.pot.builtin.utils import get_webpo_content_binding, ContentBindingType +from yt_dlp.extractor.youtube.pot.utils import get_webpo_content_binding, ContentBindingType class TestGetWebPoContentBinding: diff --git a/test/test_pot/test_pot_builtin_webpospec.py b/test/test_pot/test_pot_builtin_webpospec.py index b557e41e2f..291f8942c5 100644 --- a/test/test_pot/test_pot_builtin_webpospec.py +++ b/test/test_pot/test_pot_builtin_webpospec.py @@ -10,7 +10,7 @@ from yt_dlp.extractor.youtube.pot.provider import ( ) from yt_dlp.version import __version__ -from yt_dlp.extractor.youtube.pot.builtin.cachespec.webpo import WebPoPCSP +from yt_dlp.extractor.youtube.pot._builtin.webpo_cachespec import WebPoPCSP from yt_dlp.globals import _pot_pcs_providers diff --git a/yt_dlp/extractor/youtube/pot/README.md b/yt_dlp/extractor/youtube/pot/README.md index fdcfd3c666..033acc35a6 100644 --- a/yt_dlp/extractor/youtube/pot/README.md +++ b/yt_dlp/extractor/youtube/pot/README.md @@ -8,7 +8,7 @@ Refer to the [PO Token Guide](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Gui - `yt_dlp.extractor.youtube.pot.cache` - `yt_dlp.extractor.youtube.pot.provider` -- `yt_dlp.extractor.youtube.pot.builtin.utils` +- `yt_dlp.extractor.youtube.pot.utils` Everything else is internal-only and no guarantees are made about the API stability. @@ -33,7 +33,7 @@ from yt_dlp.extractor.youtube.pot.provider import ( register_preference, ) from yt_dlp.networking.common import Request -from yt_dlp.extractor.youtube.pot.builtin.utils import get_webpo_content_binding +from yt_dlp.extractor.youtube.pot.utils import get_webpo_content_binding from yt_dlp.utils import traverse_obj from yt_dlp.networking.exceptions import RequestError import json @@ -50,7 +50,7 @@ class MyPoTokenProviderPTP(PoTokenProvider): # Provider name must end with "PTP # Innertube Client Name. # For example, "WEB", "ANDROID", "TVHTML5". - # For a list of WebPO client names, see yt_dlp.extractor.youtube.pot.builtin.utils.WEBPO_CLIENTS. + # For a list of WebPO client names, see yt_dlp.extractor.youtube.pot.utils.WEBPO_CLIENTS. # Also see yt_dlp.extractor.youtube._base.INNERTUBE_CLIENTS for a list of client names currently supported by the YouTube extractor. _SUPPORTED_CLIENTS = ('WEB', 'TVHTML5') diff --git a/yt_dlp/extractor/youtube/pot/__init__.py b/yt_dlp/extractor/youtube/pot/__init__.py index f2075d349f..a3596f9c7c 100644 --- a/yt_dlp/extractor/youtube/pot/__init__.py +++ b/yt_dlp/extractor/youtube/pot/__init__.py @@ -1 +1,2 @@ -from .builtin import utils as _ # noqa: F401 +# Trigger import of built-in providers +from ._builtin import _trigger_import # noqa: F401 diff --git a/yt_dlp/extractor/youtube/pot/_builtin/__init__.py b/yt_dlp/extractor/youtube/pot/_builtin/__init__.py new file mode 100644 index 0000000000..d3eab7ec67 --- /dev/null +++ b/yt_dlp/extractor/youtube/pot/_builtin/__init__.py @@ -0,0 +1,4 @@ +from .memory_cache import MemoryLRUPCP as _MemoryLRUPCP # noqa: F401 +from .webpo_cachespec import WebPoPCSP as _WebPoPCSP # noqa: F401 + +_trigger_import = None # noqa: F401 diff --git a/yt_dlp/extractor/youtube/pot/builtin/cache/memory.py b/yt_dlp/extractor/youtube/pot/_builtin/memory_cache.py similarity index 100% rename from yt_dlp/extractor/youtube/pot/builtin/cache/memory.py rename to yt_dlp/extractor/youtube/pot/_builtin/memory_cache.py diff --git a/yt_dlp/extractor/youtube/pot/builtin/cachespec/webpo.py b/yt_dlp/extractor/youtube/pot/_builtin/webpo_cachespec.py similarity index 94% rename from yt_dlp/extractor/youtube/pot/builtin/cachespec/webpo.py rename to yt_dlp/extractor/youtube/pot/_builtin/webpo_cachespec.py index 177c73e49c..cfd42ad8d1 100644 --- a/yt_dlp/extractor/youtube/pot/builtin/cachespec/webpo.py +++ b/yt_dlp/extractor/youtube/pot/_builtin/webpo_cachespec.py @@ -1,7 +1,6 @@ from __future__ import annotations from yt_dlp.extractor.youtube.pot._provider import BuiltInIEContentProvider -from yt_dlp.extractor.youtube.pot.builtin.utils import ContentBindingType, get_webpo_content_binding from yt_dlp.extractor.youtube.pot.cache import ( CacheProviderWritePolicy, PoTokenCacheSpec, @@ -11,6 +10,7 @@ from yt_dlp.extractor.youtube.pot.cache import ( from yt_dlp.extractor.youtube.pot.provider import ( PoTokenRequest, ) +from yt_dlp.extractor.youtube.pot.utils import ContentBindingType, get_webpo_content_binding from yt_dlp.utils import traverse_obj diff --git a/yt_dlp/extractor/youtube/pot/builtin/__init__.py b/yt_dlp/extractor/youtube/pot/builtin/__init__.py deleted file mode 100644 index ceeca557f5..0000000000 --- a/yt_dlp/extractor/youtube/pot/builtin/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .cache.memory import MemoryLRUPCP as _MemoryPCP # noqa: F401 -from .cachespec.webpo import WebPoPCSP as _WebPoPCSP # noqa: F401 diff --git a/yt_dlp/extractor/youtube/pot/provider.py b/yt_dlp/extractor/youtube/pot/provider.py index 2c71c3fb60..29f49436a1 100644 --- a/yt_dlp/extractor/youtube/pot/provider.py +++ b/yt_dlp/extractor/youtube/pot/provider.py @@ -97,7 +97,7 @@ class PoTokenProvider(IEContentProvider, abc.ABC, suffix='PTP'): # Innertube Client Name. # For example, "WEB", "ANDROID", "TVHTML5". - # For a list of WebPO client names, see yt_dlp.extractor.youtube.pot.builtin.utils.WEBPO_CLIENTS. + # For a list of WebPO client names, see yt_dlp.extractor.youtube.pot._builtin.utils.WEBPO_CLIENTS. # Also see yt_dlp.extractor.youtube._base.INNERTUBE_CLIENTS for a list of client names currently supported by the YouTube extractor. _SUPPORTED_CLIENTS: tuple[str] | None = () diff --git a/yt_dlp/extractor/youtube/pot/builtin/utils.py b/yt_dlp/extractor/youtube/pot/utils.py similarity index 96% rename from yt_dlp/extractor/youtube/pot/builtin/utils.py rename to yt_dlp/extractor/youtube/pot/utils.py index 34c06b21bb..e9e889a6b7 100644 --- a/yt_dlp/extractor/youtube/pot/builtin/utils.py +++ b/yt_dlp/extractor/youtube/pot/utils.py @@ -10,7 +10,7 @@ import urllib.parse from yt_dlp.extractor.youtube.pot.provider import PoTokenContext, PoTokenRequest from yt_dlp.utils import traverse_obj -__all__ = ['WEBPO_CLIENTS', 'get_webpo_content_binding'] +__all__ = ['WEBPO_CLIENTS', 'ContentBindingType', 'get_webpo_content_binding'] WEBPO_CLIENTS = ( 'WEB',