Создание действия для YouTube в конструкторе Scenum.io

Создание действия для YouTube в конструкторе Scenum.io


Совсем недавно сервис автофарма Scenum.io запилил возможность создавать свои действия для автоматизации любых действий в браузере.
Да, конечно, у него своих действий много. Но очень не хватало действий для Ютуба, гугла и других интересных штук.
Пришлось их попросить допилить функции этого конструктора. Без переменных и взятия информации из файла мало чего можно было создать. В итоге мне удалось создать своё действие по просмотру видосов ютуба и оставления коментов. Полную версию команд конструктора можете посмотреть здесь
Делал я так:

Сначала реализуем обычный просмотр видео из списка:
1. Записываем в переменную -urls указатель на файл urls.txt со ссылками на видео

 -urls file open urls.txt

2. Копируем строку из файла -urls в переменную -videoUrl с удалением

-videoUrl file cutNext -urls

3. Открываем полученную ссылку -videoUrl во вкладке

 open -videoUrl

4. Выбираем продолжительность просмотра в диапазоне от 10 до 30 секунд

 -time random 10 30

5. Смотрим открывшийся ролик

 wait -time

6. Делаем запись в итоговый файл. Для этого создаем новую переменную с указателем на файл result.txt

-result file open result.txt

7. И дописываем в конец ссылку на просмотренное видео

file paste -result -videoUrl

Просмотр готов!

Теперь разберемся с лайками:
1. Для автоматической постановки лайка открываем Chrome DevTools (F12 или Ctrl + Shift + I), выбираем инструмент для выделения элемента

2. И нажимаем на кнопку лайка

3. В DevTools должен открыться этот элемент

4. Вызываем на нем контекстное меню и копируем ссылку XPath

5. В сценарий пишем команду нажатия кнопки и вставляем скопированную ссылку

 click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/div[5]/div[1]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div[1]/ytd-toggle-button-renderer[1]/a

С лайками разобрались! Переходим к коментам

1. Чтобы оставить комментарий, нужно прокрутить страницу для подгрузки поля для ввода. Для этого пишем команду scroll, в качестве элемента для прокрутки можно указать кнопку лайка: она расположена в том же самом прокручиваемом контейнере, что и остальные элементы, он будет найден автоматически. Количество прокруток указываем 1.

 scroll /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/div[5]/div[1]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div[1]/ytd-toggle-button-renderer[1]/a 1


2. По аналогии с кнопкой лайка выбираем поле для ввода комментария.
ВАЖНО: здесь и далее при выборе элементов нажимать куда-либо на странице нельзя, это вызывает изменения ее структуры и меняет ссылки на элементы. Выбор элементов осуществлять только по схеме, описанной в выборе кнопки лайка.

3. Выбранный элемент еще не является полем для ввода. Для его активации необходимо нажать на него, поэтому следующая команда будет click

 click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[1]/yt-formatted-string

 Теперь на странице появилось поле для ввода, снова выбираем его

4. И пишем команду на ввод текста, например, "Cool!"

 input /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[3]/ytd-comment-dialog-renderer/ytd-commentbox/div[2]/div/div[2]/tp-yt-paper-input-container/div[2]/div/div[1]/ytd-emoji-input/yt-user-mention-autosuggest-input/yt-formatted-string/div Cool!


5. Для отправки комментария нужно нажать кнопку, которая сейчас недоступна. Поэтому вводим случайный текст в поле для ввода комментария для ее активации и копируем ссылку на элемент

6. Пишем команду нажатия и вставляем ссылку

click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[3]/ytd-comment-dialog-renderer/ytd-commentbox/div[2]/div/div[4]/div[5]/ytd-button-renderer[2]/a

 

7. Ждем некоторое время для отправки комментария, после чего сценарий будет автоматически завершен

 wait 30


 Вот и всё! Если разобраться всё не сложно. Также можно добавить комментарии из файла. Просто перед вставкой комента добавьте команду забрать из файла в переменную и вместо коментария укажите переменную.

 

Итого, получившийся сценарий

 -urls file open urls.txt

 -videoUrl file cutNext -urls

 open -videoUrl

 -time random 10 30

 wait -time

 -result file open result.txt

 file paste -result -videoUrl

 click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/div[5]/div[1]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div[1]/ytd-toggle-button-renderer[1]/a

 scroll /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/div[5]/div[1]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div[1]/ytd-toggle-button-renderer[1]/a 1

 click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[1]/yt-formatted-string

 input /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[3]/ytd-comment-dialog-renderer/ytd-commentbox/div[2]/div/div[2]/tp-yt-paper-input-container/div[2]/div/div[1]/ytd-emoji-input/yt-user-mention-autosuggest-input/yt-formatted-string/div Cool!

 click /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[5]/ytd-comment-simplebox-renderer/div[3]/ytd-comment-dialog-renderer/ytd-commentbox/div[2]/div/div[4]/div[5]/ytd-button-renderer[2]/a

wait 30

Report Page