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

如何获取yt-dlp下载视频后的文件名?

获取yt-dlp下载后的视频文件名方法

以下是几种可靠的方案,帮你拿到yt-dlp生成的视频文件名,方便后续调用ffmpeg剪辑:

1. 用--print参数提前获取文件名

这是最直接的方法,yt-dlp支持通过--print参数输出指定字段,你可以先获取将要生成的文件名,再执行下载:

# 先获取文件名并保存到变量
output_filename=$(yt-dlp --print filename "你的视频URL")
# 执行下载
yt-dlp "你的视频URL"
# 后续直接用$output_filename调用ffmpeg
ffmpeg -i "$output_filename" -ss 00:01:00 -to 00:02:00 "clipped_video.mp4"

如果担心下载时文件名有变化(比如重复文件自动重命名),可以在下载时指定同样的命名模板,或者加上--no-overwrites避免自动改名。

2. 自定义固定输出文件名

直接用-o参数指定一个固定文件名,完全避免猜测:

# 指定下载后的文件名
yt-dlp -o "my_video.mp4" "你的视频URL"
# 直接用这个固定文件名调用ffmpeg
ffmpeg -i "my_video.mp4" ...

你也可以用变量动态生成带信息的文件名,比如包含视频标题:-o "%(title)s.mp4",这样既保留标题信息,又能提前明确命名规则。

3. 从yt-dlp输出中提取文件名

如果不想修改原有下载命令,可以从yt-dlp的标准输出里匹配提取目标文件名:

# 执行下载并提取文件名到变量
output_filename=$(yt-dlp "你的视频URL" 2>&1 | grep -oP '\[download\] Destination: \K.*')
# 之后使用该文件名调用ffmpeg
ffmpeg -i "$output_filename" ...

这个命令通过正则匹配下载完成时输出的[download] Destination: 文件名行,直接提取出文件名部分。

4. 编程场景(以Python为例)

如果是在Python脚本中调用yt-dlp,可以直接用其API获取文件名:

from yt_dlp import YoutubeDL
import subprocess

def download_and_get_filename(video_url):
    ydl_opts = {}
    with YoutubeDL(ydl_opts) as ydl:
        # 先获取视频信息,不下载
        info = ydl.extract_info(video_url, download=False)
        # 生成将要保存的文件名
        filename = ydl.prepare_filename(info)
        # 执行下载
        ydl.download([video_url])
        return filename

# 使用示例
video_url = "你的视频URL"
video_file = download_and_get_filename(video_url)
# 调用ffmpeg剪辑
subprocess.run(["ffmpeg", "-i", video_file, "-ss", "00:01:00", "-to", "00:02:00", "output.mp4"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:26:25