Сначала давайте посмотрим на работающее видео.
загрузить видео в ТикТок, Инстаграм, Твиттер
Подготовленный материал
Видеофайл mp4, так как в twitter есть ограничение на длину загружаемого видео, был подготовлен сокращенный видеофайл.
Изображение обложки для Instagram, TikTok использует первый кадр видео в качестве обложки.
Запуск кода Python
- следуйте инструкциям clicknium getting started, чтобы настроить среду разработки.
- Клонируйте репозиторий с примерами.
git clone https://github.com/automation9417/automation-samples.git
- откройте папку ‘UploadVideo’ в Visual Studio Code.
- откройте
sample.py
в Visual Studio Code. - откройте браузер chrome (гарантируйте, что есть только одно окно chrome, объяснение позже), откройте 3 вкладки соответственно, откройте и войдите в TikTok, Twitter и Instagram.
- нажмите
F5
для отладки примера или нажмитеCTRL+F5
для запуска примера. Видео, прилагаемое к примеру, будет загружено, и вы также можете изменить код под свой собственный видеоконтент:
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 — аналогичный процесс.
- Получите открытую вкладку браузера, прикрепив браузер, а затем перейдите на главную страницу Instagram.
tab = cc.chrome.attach_by_title_url(url="https://*instagram.com/*")
tab.goto("https://www.instagram.com/")
- Нажмите кнопку «добавить пост», все элементы веб-страницы здесь записываются Clicknium Recorder.
tab.find_element(locator.chrome.instagram.svg_add_post).click()
- Нажмите кнопку ‘Выбрать с компьютера’, чтобы открыть диалоговое окно выбора файла. Из-за ограничений безопасности браузера щелкните здесь, имитируя мышь.
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')
Особое замечание здесь заключается в том, что я изменил записанный локатор ‘edit_file’ и ‘button_open’:
Изменил соответствие окна Name на подстановочный знак *, потому что загрузка видео на TikTok и Twitter также требует работы диалога выбора файла. Чтобы избежать повторной записи, подстановочный знак используется для сопоставления окна для достижения повторного использования. Поэтому в предыдущих шагах требуется только одно окно браузера Chrome, чтобы обеспечить правильное сопоставление окна.
- Нажмите кнопку «далее», затем выберите изображение обложки, код аналогичен приведенному выше.
- Введите текст, который вы хотите отправить, затем нажмите кнопку ‘Поделиться’.
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()
Вы можете оставить свои комментарии по поводу необходимости загрузки видео на другие видеоплатформы, и я могу предоставить больше примеров кода.