From 230037832de5d341c3542f04c4b0171a4cbbbe57 Mon Sep 17 00:00:00 2001 From: Will Howes Date: Tue, 19 Mar 2024 13:22:16 -0700 Subject: [PATCH 1/2] add browser selection option to create_sessions method --- TikTokApi/tiktok.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/TikTokApi/tiktok.py b/TikTokApi/tiktok.py index 893e342e..cc4a7b6b 100644 --- a/TikTokApi/tiktok.py +++ b/TikTokApi/tiktok.py @@ -212,6 +212,7 @@ async def create_sessions( override_browser_args: list[dict] = None, cookies: list[dict] = None, suppress_resource_load_types: list[str] = None, + browser: str = "chromium" ): """ Create sessions for use within the TikTokApi class. @@ -230,6 +231,7 @@ async def create_sessions( override_browser_args (list[dict]): A list of dictionaries containing arguments to pass to the browser. cookies (list[dict]): A list of cookies to use for the sessions, you can get these from your cookies after visiting TikTok. suppress_resource_load_types (list[str]): Types of resources to suppress playwright from loading, excluding more types will make playwright faster.. Types: document, stylesheet, image, media, font, script, textrack, xhr, fetch, eventsource, websocket, manifest, other. + browser (str): specify either firefox or chromium, default is chromium Example Usage: .. code-block:: python @@ -239,12 +241,19 @@ async def create_sessions( await api.create_sessions(num_sessions=5, ms_tokens=['msToken1', 'msToken2']) """ self.playwright = await async_playwright().start() - if headless and override_browser_args is None: - override_browser_args = ["--headless=new"] - headless = False # managed by the arg - self.browser = await self.playwright.chromium.launch( - headless=headless, args=override_browser_args, proxy=random_choice(proxies) - ) + if browser == "chromium": + if headless and override_browser_args is None: + override_browser_args = ["--headless=new"] + headless = False # managed by the arg + self.browser = await self.playwright.chromium.launch( + headless=headless, args=override_browser_args, proxy=random_choice(proxies) + ) + elif browser == "firefox": + self.browser = await self.playwright.firefox.launch( + headless=headless, args=override_browser_args, proxy=random_choice(proxies) + ) + else: + raise ValueError("Invalid browser argument passes") await asyncio.gather( *( From b4aafb5aaeb34d524ae06012fcf54fb32c9f7018 Mon Sep 17 00:00:00 2001 From: Will Howes Date: Tue, 19 Mar 2024 13:26:01 -0700 Subject: [PATCH 2/2] fix spelling typo --- TikTokApi/tiktok.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TikTokApi/tiktok.py b/TikTokApi/tiktok.py index cc4a7b6b..c3b0e2a2 100644 --- a/TikTokApi/tiktok.py +++ b/TikTokApi/tiktok.py @@ -253,7 +253,7 @@ async def create_sessions( headless=headless, args=override_browser_args, proxy=random_choice(proxies) ) else: - raise ValueError("Invalid browser argument passes") + raise ValueError("Invalid browser argument passed") await asyncio.gather( *(