python에서 youtube 화면 screenshot 저장하기

python에서 쉽게 screenshot 저장하는 방법을 소개합니다

playwright (버전은 1.23.0 기준)를 이용하는 방법입니다
playwright는 브라우저를 다운로드 받아서, 실행시키고 화면에는 보여주지 않으나,
다양한 동작을 python으로 조작 가능하게 합니다

먼저 pip로 playwright와 requests를 설치합니다

pip install playwright
pip install requests

playwright가 설치가 되면, playwright가 필요로 하는 다른 파일들을 설치합니다

playwright install

그후에 아래처럼 코드를 작성하면 됩니다

#!/usr/bin/env python3

import time
from playwright.sync_api import sync_playwright
import requests

with sync_playwright() as p:
    for browser_type in [p.firefox]:
        browser = browser_type.launch()
        page = browser.new_page()
        page.goto('https://www.youtube.com/watch?v=1-iS7LArMPA') # NY Times Square live CCTV
        img = page.screenshot(path=f'testshot1_{browser_type.name}.png')
        for i in range(5):
            print(f'waiting : {i}')
            time.sleep(1)
        ytplayer = page.query_selector("//div[@id='player-container-inner']");
        ytplayer.screenshot(path='2shot.png')
        browser.close()

그러면 전체화면 파일과, 동영상 플레이어만 있는 2shot.png의 파일 두개가 저장되어 완료됩니다

2shot

6개의 좋아요