zoujie

支持 快手,腾讯视频号headless发布

......@@ -83,15 +83,15 @@ class KSVideo(object):
async def upload(self, playwright: Playwright) -> None:
# 使用 Chromium 浏览器启动一个浏览器实例
print(self.local_executable_path)
if self.local_executable_path:
browser = await playwright.chromium.launch(
headless=True,
executable_path=self.local_executable_path,
)
else:
browser = await playwright.chromium.launch(
headless=True
) # 创建一个浏览器上下文,使用指定的 cookie 文件
# if self.local_executable_path:
# browser = await playwright.chromium.launch(
# headless=True,
# executable_path=self.local_executable_path,
# )
# else:
browser = await playwright.firefox.launch(
headless=True
) # 创建一个浏览器上下文,使用指定的 cookie 文件
context = await browser.new_context(storage_state=f"{self.account_file}")
context = await set_init_script(context)
context.on("close", lambda: context.storage_state(path=self.account_file))
......@@ -114,6 +114,23 @@ class KSVideo(object):
# await file_chooser.set_files(self.file_path)
await page.locator("div[class^='_publish-container'] input").set_input_files(self.file_path)
await asyncio.sleep(5)
# 判断视频是否上传成功,去除引导页
while True:
# 判断视频是否上传成功,去除引导页
try:
skip_button = page.get_by_role('button', name="Skip", exact=True)
if await skip_button.count():
await skip_button.click()
await asyncio.sleep(1)
else:
await asyncio.sleep(1)
break
except:
kuaishou_logger.info(" [-] 视频正在发布中...")
await asyncio.sleep(0.5)
break
if not await page.get_by_text("封面设置").count():
raise Exception("似乎没有跳转到到编辑页面")
......
......@@ -137,7 +137,9 @@ class TencentVideo(object):
async def upload(self, playwright: Playwright) -> None:
# 使用 Chromium (这里使用系统内浏览器,用chromium 会造成h264错误
browser = await playwright.chromium.launch(headless=False, executable_path=self.local_executable_path)
# browser = await playwright.chromium.launch(headless=True, executable_path=self.local_executable_path)
browser = await playwright.firefox.launch(headless=True )
# 创建一个浏览器上下文,使用指定的 cookie 文件
context = await browser.new_context(storage_state=f"{self.account_file}")
context = await set_init_script(context)
......@@ -150,8 +152,9 @@ class TencentVideo(object):
# 等待页面跳转到指定的 URL,没进入,则自动等待到超时
await page.wait_for_url("https://channels.weixin.qq.com/platform/post/create")
# await page.wait_for_selector('input[type="file"]', timeout=10000)
file_input = page.locator('input[type="file"]')
await file_input.set_input_files(self.file_path)
file_input = await page.locator('input[type="file"]').set_input_files(self.file_path)
await page.wait_for_selector(".cover-img-horizontal",state="attached")
# await file_input.set_input_files(self.file_path)
# 填充标题和话题
await self.add_title_tags(page)
# 添加商品
......