Note

Youtube 스크립트 본문

etc/Crawling

Youtube 스크립트

알 수 없는 사용자 2023. 3. 23. 19:30
728x90

유튜브 제목 옆 줄 끝에 점 세개를 누르면 스크립트 표시가 있다.

스크립트는 유튜브에서 자동적으로 생성해주는 자막이 표시가 되어있다.

한국어 자막은 성능이 좋지 않지만 영어 자막은 꽤 잘 잡는 것으로 알고 있다.

import pandas as pd
import json
import re
import time
from tqdm import tqdm
import pymysql
from datetime import date
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

chrome_options = Options()
chrome_options.add_argument("user-agent=Mozilla/5.0")
chrome_options.add_argument("user-agent=AppleWebKit/537.36")
chrome_options.add_argument("user-agent=Chrome/71.0.3578.98")
chrome_options.add_argument("user-agent=Safari/537.36")
chrome_options.add_argument("user-agent=OPR/58.0.3135.127")
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(options=chrome_options)


video_url = "" # 유튜브 영상 주소
driver.get(video_url)
time.sleep(1.5)

# 영상 멈춤
driver.find_elements(By.XPATH,'//*[@id="movie_player"]')[0].click()

# 더보기 클릭
driver.implicitly_wait(1.5)
driver.find_elements(By.XPATH,'/html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-watch-metadata/div/div[2]/div[2]/div/div/ytd-menu-renderer/yt-button-shape/button/yt-touch-feedback-shape/div/div[2]')[0].click()

# 스크립트 표시 클릭
driver.implicitly_wait(1.5)
driver.find_elements(By.XPATH,'/html/body/ytd-app/ytd-popup-container/tp-yt-iron-dropdown[2]/div/ytd-menu-popup-renderer/tp-yt-paper-listbox/ytd-menu-service-item-renderer/tp-yt-paper-item')[0].click()

script = driver.find_elements(By.XPATH,'/html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[2]/div/div[1]/ytd-engagement-panel-section-list-renderer[4]/div[2]/ytd-transcript-renderer/div[2]/ytd-transcript-search-panel-renderer/div[2]/ytd-transcript-segment-list-renderer/div[1]')[0].text

driver.quit()
Comments