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

使用pytube库下载的文件无法保存到指定位置问题咨询

问题原因分析
  • 你调用stream.download()时没有传入output_path参数,pytube默认会将视频保存到脚本运行的当前工作目录,这是路径不符合预期的核心原因
  • 后续open("\Download", "w")及写入的代码逻辑完全错误:stream.download()每次调用都会触发一次下载,你这里相当于重复下载了两次;且你写入的是download()方法返回的文件路径字符串,不是视频二进制内容,这段代码对保存视频到目标路径没有任何作用,属于冗余错误代码
修正方案
  1. 先声明你要保存的目标路径,建议提前判断路径是否存在,不存在则自动创建,避免报错
  2. 调用stream.download()时传入output_path参数指定目标目录即可
  3. 删掉冗余的文件写入代码

修改后的完整代码如下:

import os
import time
from tqdm import tqdm
from colorama import Fore
from pytube import YouTube

# 替换为你自己的目标保存路径,Windows下可以写 r"C:\Users\你的用户名\Downloads" 或者 "D:/MyVideos"
TARGET_SAVE_PATH = "./downloads" # 示例为当前目录下的downloads文件夹,可自行修改

# 你自己定义的progress_callback函数保留即可
def progress_callback(stream, chunk, bytes_remaining):
    pbar.update(len(chunk))

af = input("Link:")
yt = YouTube(af, on_progress_callback=progress_callback)
stream = yt.streams.get_highest_resolution()
print(f"Downloading video to '{stream.default_filename}'")
pbar = tqdm(total=stream.filesize, unit="bytes")

# 目标路径不存在则自动创建
os.makedirs(TARGET_SAVE_PATH, exist_ok=True)
# 传入output_path参数指定保存目录
path = stream.download(output_path=TARGET_SAVE_PATH)

pbar.close()
print(Fore.LIGHTGREEN_EX + "Saved video to {}".format(path))
time.sleep(10)

注意:Windows系统下路径如果用反斜杠\需要转义写成\\,或者在字符串前加r标记为raw字符串,避免转义字符导致路径识别错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:02