You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现YouTube关键词搜索首视频自动播放及链接获取

解决方案:Python实现YouTube关键词搜索、自动播放首个视频及获取链接

Alright, let's tackle this problem head-on. You want a Python app that searches YouTube for a given keyword, auto-plays the first result, and lets you grab that video's link. Here's a step-by-step solution using Selenium—this library lets us simulate human interactions with the browser, which is perfect for this use case.

1. 先搞定依赖安装

First, you'll need to set up the necessary tools:

  • Install Selenium via pip:
    pip install selenium
    
  • Download the WebDriver for your browser (e.g., ChromeDriver for Google Chrome, GeckoDriver for Firefox). Make sure the driver version matches your browser's version, and either add it to your system PATH or specify its path directly in the code.

2. 完整代码实现

Here's the full script that does everything you need—with comments to explain each step:

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

def youtube_search_play_and_get_link(keyword):
    # Initialize Chrome driver (swap with webdriver.Firefox() if using Firefox)
    driver = webdriver.Chrome()
    driver.maximize_window()

    try:
        # Navigate to YouTube homepage
        driver.get("https://www.youtube.com/")
        
        # Wait for search box to load, then input keyword
        search_box = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.NAME, "search_query"))
        )
        search_box.send_keys(keyword)
        search_box.send_keys(Keys.ENTER)

        # Wait for search results to load, then locate first video
        first_video = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "video-title"))
        )
        
        # Grab the video's URL (this is how you get the first result's link!)
        video_link = first_video.get_attribute("href")
        print(f"✅ First video link: {video_link}")

        # Ask user if they want to save the link
        save_choice = input("Do you want to save this link to a text file? (y/n): ").lower()
        if save_choice == "y":
            with open("youtube_first_video_link.txt", "w") as file:
                file.write(video_link)
            print("✅ Link saved to youtube_first_video_link.txt!")

        # Click the first video to start auto-play
        first_video.click()
        print("🎥 Now playing the first search result...")

        # Keep browser open until user presses Enter
        input("\nPress Enter to close the browser...")
    finally:
        # Clean up: close the browser
        driver.quit()

# Run the app
if __name__ == "__main__":
    search_keyword = input("Enter your YouTube search keyword: ")
    youtube_search_play_and_get_link(search_keyword)

3. Key Details & Troubleshooting

  • Getting the video link: The magic happens with first_video.get_attribute("href")—this extracts the URL from the first video's title element, which is exactly the link you need.
  • Reliable waits: I used WebDriverWait instead of time.sleep() because it waits until the element is actually loaded (instead of guessing a fixed time). This makes the script more robust against slow page loads.
  • Browser compatibility: If you prefer Firefox, just replace webdriver.Chrome() with webdriver.Firefox() and make sure you have GeckoDriver set up.
  • Page structure changes: YouTube occasionally updates its UI. If the script breaks, inspect the page to check if the element locators (like By.ID, "video-title") have changed.

内容的提问来源于stack exchange,提问作者Edward Zion Saji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:27:56