Python-скрипт для пропуска рекламы в YouTube

Добавлено: 15/01/2021 08:48 |  Обновлено: 07/05/2021 12:19 |  Добавил: nick |  Просмотры: 3371 Комментарии: 0
Вводная часть
Есть у меня такой обычай по вечерам смотреть длинные видео в Ютьюбе, на моем ноутбуке. При этом у меня нет никаких блокировщиков рекламы, поэтому приходится постоянно нажимать на кнопку пропуска рекламы. В какой-то момент я сказал себе: «Хватит!». И решил быстренько накатать питоновский скрипт, который бы делал это за меня. Сказано сделано. В качестве основной библиотеки я использовал pyautogui..
Есть у меня такой обычай по вечерам смотреть длинные видео в Ютьюбе, на моем ноутбуке. При этом у меня нет никаких блокировщиков рекламы, поэтому приходится постоянно нажимать на кнопку пропуска рекламы. В какой-то момент я сказал себе: «Хватит!». И решил быстренько накатать питоновский скрипт, который бы делал это за меня. Сказано сделано. В качестве основной библиотеки я использовал pyautogui.

Выкладываю здесь его, вдруг кому пригодится.

Внимание! Скрипт должен находиться в отдельной папке, так как после завершения своей работы (клавиши Ctrl+C), скрипт стирает в папке все файлы, кроме самого себя. Делается это для того, чтобы подчистить созданные, но не удаленные скриншоты, которые создаются во время работы скрипта.

Принцип работы скрипта

Во время воспроизведения рекламы внизу экрана появляется желтая полоса, скрипт определяет, что эта желтая полоса появилась, и переносит курсор мыши к кнопке пропуска рекламы, после чего нажимает по этой кнопке.

В скрипте используются координаты, указанные в соответсвии с размерами экрана моего ноутбука. Для вашего экрана координаты могут быть другие.
#!/usr/bin/env python3
 
import pyautogui
from os import listdir, remove
 
print('Ctrl-C для выхода.')
try:
    while True:
        a = pyautogui.position()
        print(a)
        pyautogui.moveTo(68, 699, duration=0.25)
        im = pyautogui.screenshot()
        b = im.getpixel((68, 699))
        print(b)
        if(b[0] in range(176, 256)):
            if(b[1] in range (153, 205)):
                pyautogui.click(1247, 624)
        else:
            pyautogui.moveTo(68, 400, duration=0.25)
except KeyboardInterrupt:
    files = [f for f in listdir('.')]
    for f in files:
        if f == 'ads.py':
            continue
        remove(f)
    print('\nГотово.')

Оставьте свой комментарий

Комментариев нет