如何通过 selenium webdriver python 上传文件到 youtube?

How upload file to youtube via selenium webdriver python?

不知道如何上传文件?需要拖放或直接通过对话框选择

根据此处的回答:Whosebug 看起来您无法使用典型的 sendkeys 方法将文件上传到 YouTube。

正如@Arran 在评论部分所说的那样 -

  • Selenium cannot handle file upload dialogs. YouTube uses HTML5 input fields, and Selenium doesn't handle HTML5 elements even in the slightest. As I said, Selenium cannot support this. Selenium won't work here

  • You shall use the API provided by youtube

"Looks like you cannot upload files on YouTube using the typical sendkeys method"

4年后...
@chandan-nayak:可以,这是一个 python 使用 selenium 将视频上传到 YouTube 的解决方案:

from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(5) # Wait up to 5 secs before throwing an error if selenium cannot find the element (!important)
driver.get("https://www.youtube.com/upload")
elem = driver.find_element_by_xpath("//input[@type='file']")
elem.send_keys("C:\full\path\to\video.mp4"); # Window$
#elem.send_keys("/full/path/to/video.mp4"); # Linux

备注:
1 - 聪明点,慢条斯理;
2 - YouTube 每天最大上传量为 50,但第一天为 100;
3 - 截至 2019 年,youtube api 每天限制上传 5 个视频(◔ _◔)

5年后...

我 运行 遇到了同样的问题并找到了 youtube-uploader-selenium 包。

As of 2019, youtube api is limited to 5 video uploads per day(◔ _◔)

描述说

Instead, this script is only restricted by a daily upload limit for a channel on YouTube: 100 videos is the limit in the first 24 hours, then drops to 50 every 24 hours after that.

你可能需要这个 试一试 ytb_up 基于 selenium

https://github.com/wanghaisheng/ytb-up 您可能需要的功能

  1. 代理支持

自动检测是否需要代理 2. cookie 支持

对于同一 google 帐户下的多个频道 3. 预定时间发布

您可以为每个视频明确指定日期和时间,或者您可以设置发布策略和每日 public 计数,例如,每日计数为 4,您有 5 个视频,则前 4 个将被发布上传日期后 1 天,其他 1 将是上传日期后 2 天 4.修复google账户验证