LoginSignup
0
1

Python YouTube クリッププログラム

Posted at

YouTubeの、クリッププログラム

目次から、本分または、学習法を検索し、
あれば、時間をクリップ、
無ければ、60sで、クリップするという、
プログラムを作りました。^^
ChatGPTに、レービューを依頼したのですが。。
高度すぎて、よくわかりませんでしたので、^^;
かなり冗長ですが、
ひとまず、動いたものを、
アップします。^^
よろしくお願いします。

# Run
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome('C:\chromedriver')
	
driver.get('https://www.youtube.com/watch?v=n5zNGvvrg4Q')

# ブラウザが展開されるまで、20s待つ
sleep(20)

#もっと見る をクリックして、リンクを展開
element_target = driver.find_element_by_id("expand")
element_target.send_keys(Keys.ENTER)

# 比較用の配列の準備
element_t = []

# 最大10秒間、テキストが"element_id"の要素がDOMに現れるまで待つ・テキスト取得
for i in range(9, 19):
    element_t.append(WebDriverWait(driver, 20).until(
        
        EC.presence_of_element_located((By.CSS_SELECTOR, "#description-inline-expander > yt-attributed-string > span > span:nth-of-type(" + str(i) + ")"))
    ))

# 表示秒数字 初期化
e_s = ""

# 検索結果の表示
for i in range(10):
    
    if "本文" in element_t[i].text:
        # 要素が見つかった後の処理
        # 要素のテキストを取得
    
        element_text = element_t[i-1].text

        # 時間文字列の秒を取得
        e_s = element_text[3:]

        # 時間文字列の分を取得
        e_m = element_text[:2]

        # 秒に変換
        e_s = str(int(e_s) + 60 * int(e_m))
        break

      
    if "学習法" in element_t[i].text:
        # 要素が見つかった後の処理
        # 要素のテキストを取得
    
        element_text = element_t[i-1].text

        # 時間文字列の秒を取得
        e_s = element_text[3:]

        # 時間文字列の分を取得
        e_m = element_text[:2]

        # 秒に変換
        e_s = str(int(e_s) + 60 * int(e_m))
        break
    else:
        e_s = "60"
    

# 動画のURLに、クリップ時間の追加

ul = "https://www.youtube.com/watch?v=n5zNGvvrg4Q"

ul = ul + "&t=" + e_s + "s"


# クリップ済みの動画を開く
driver2 = webdriver.Chrome('C:\chromedriver')
	
driver2.get(ul)

driver.close()
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1