只需要10行python代码即可上传视频到多家短视频平台,tiktok, instagram,twitter

606 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

只需要10行python代码即可上传视频到tiktok, instagram,twitter

话不多说,先看运行结果

upload video to Tiktok, Instagram, Twitter

素材展示

一个mp4视频,由于twitter对于上传的视频时长有限制,因为准备了一个缩短的视频. 一个封面图片(用于instagram,tiktok就用视频第一帧图像作为cover).

image.png

运行脚本

git clone https://github.com/automation9417/automation-samples.git
  • 在Visual Studio Code中打开文件夹 'UploadVideo'.
  • 打开文件 sample.py.
  • 打开chrome浏览器(保证只有一个chrome窗口,后面解释),分别打开3个tab页分别打开TikTok,Twitter和Instagram并登录,
  • 点击 F5 调试或者点击CTRL+F5运行. 会上传sample自带的视频,你也可以修改成自己的视频内容:
caption = 'Clicknium introduction'
cover_image = os.path.join(os.getcwd(), "media", "logo.png")
video_file = os.path.join(os.getcwd(), "media", "clicknium_introduction.mp4")
upload_tiktok.upload(caption, video_file)
short_video_file = os.path.join(os.getcwd(), "media", "short_introduction.mp4")
upload_twitter.upload(caption, short_video_file)
upload_instagram.upload(caption, cover_image, video_file)

实现过程

这里以上传视频到Instagram为例,上传视频到TikTok和Twitter是类似的过程

  • 通过绑定浏览器获取已经打开的浏览器tab页,然后跳转到Instagram Home页面
tab = cc.chrome.attach_by_title_url(url="https://*instagram.com/*")
tab.goto("https://www.instagram.com/")
  • 点击'add post'按钮, 这里的所有页面元素都是通过Clicknium Recorder进行录制的
tab.find_element(locator.chrome.instagram.svg_add_post).click()
  • 点击'Select from computer'按钮弹出文件选择对话框, 由于浏览器权限的限制,这里使用模拟鼠标的方式进行点击
tab.find_element(locator.chrome.instagram.button_select_file).click(by='mouse-emulation')
  • 使用Clicknium桌面自动化的方式选择视频文件并点击打开按钮
ui(locator.chrome.edit_file).set_text(video_file, by='set-text')
ui(locator.chrome.button_open).click(by='control-invocation')

这里需要特殊说明的是,我讲录制的locator 'edit_file'和'button_open'做了改动,例如'edit_file': fil locator

将窗口匹配的Name改成通配符*号了,因为上传视频到TikTok和Twitter也需要操作文件选择对话框, 为了避免重复录制,就通过通配符来匹配窗口,做到重用。 因此前序步骤要求只有一个Chrome浏览器窗口,保证窗口能正确匹配上.

  • 点击'next'按钮,然后选择封面图片,代码和以上类似
  • 输入需要发送的文字内容,然后点击分享
tab.find_element(locator.chrome.instagram.textarea).set_text(caption)
tab.find_element(locator.chrome.instagram.button_share).click()
  • 等待上传成功,根据视频大小所需的时间不同
tab.wait_appear(locator.chrome.instagram.h2_yourposthasbeenshared, wait_timeout=120)

上传视频到Instagram因为要上传封面图片,所以多了几个步骤,以下是上传视频到Twitter的完整代码,只需要9行代码.

tab = cc.chrome.attach_by_title_url(url="https://*twitter.com/*")
tab.goto("https://twitter.com/compose/tweet")
tab.find_element(locator.chrome.twitter.div).set_focus()
cc.send_text(tweet)
tab.find_element(locator.chrome.twitter.svg).click()
ui(locator.chrome.edit_file).set_text(video_file, by='set-text')
ui(locator.chrome.button_open).click(by='control-invocation')
tab.wait_appear(locator.chrome.twitter.video)
tab.find_element(locator.chrome.twitter.span_tweet).click()

欢迎大家评论还有哪些上传视频到其他视频平台的需求,可以提供更多的sample code.