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

Python使用Selenium webdriver跳转YouTube视频指定时间点实现方法

Selenium控制YouTube跳转指定播放时间实现方案

你可以用以下两种方式实现需求,优先推荐第一种,稳定性最高:

方法1:URL拼接时间参数(推荐)

YouTube原生支持URL时间锚点参数,在视频链接后追加t参数即可指定视频加载后的起始播放位置,无需额外操作播放器,不会出现焦点错位、接口未加载的问题。

  • 参数支持灵活的时间格式:直接写7m45s代表7分45秒,465s代表465秒,1h2m3s代表1小时2分3秒,不需要手动换算时间单位。
  • 只需要修改原有代码的url变量即可,修改后完整代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome(executable_path = 'C:/bit9prog/dev/chromedriver_win32/chromedriver')
# 追加t参数指定从7分45秒开始播放
url = "https://www.youtube.com/watch?v=5ygpvZbxA6w&t=7m45s"

driver.get(url)
# 等待页面资源加载
for i in range(3):
    print(i)
    time.sleep(1)

video = driver.find_element(By.ID,'movie_player')
video.send_keys("k") # 触发播放,适配浏览器自动播放限制
time.sleep(1)

方法2:调用播放器原生JS接口(适合动态调整时间场景)

如果你需要在页面加载后不刷新就动态调整播放位置,可以直接调用YouTube播放器暴露的seekTo()原生方法,比模拟键盘快进的方式稳定得多,不受页面焦点、播放状态影响。

  • seekTo(秒数, 是否允许直接缓冲目标位置):第二个参数传true时会直接跳转到目标时间缓冲,不会逐段快进。
  • 实现代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome(executable_path = 'C:/bit9prog/dev/chromedriver_win32/chromedriver')
url = "https://www.youtube.com/watch?v=5ygpvZbxA6w"
driver.get(url)

time.sleep(3) # 等待播放器初始化完成
video = driver.find_element(By.ID,'movie_player')
# 计算目标时间对应的秒数
target_second = 7 * 60 + 45
# 执行JS跳转
driver.execute_script("arguments[0].seekTo(arguments[1], true)", video, target_second)
video.send_keys("k") # 触发播放
time.sleep(1)

注意事项

  • 不要用模拟连续按方向快进键的方式实现跳转,效率极低,且容易因为页面失去焦点、缓冲延迟导致跳转位置不准
  • 如果跳转后出现视频没播放的情况,适当延长页面等待时间,确保播放器完全初始化后再执行操作
  • 如果你的Chrome版本和chromedriver版本不匹配,先更新对应版本的驱动,避免基础运行报错

内容的提问来源于stack exchange,提问作者Nagaraj Rao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:17:03