202507 Youtube视频下载代码

写于

需要安装ffmpeg,设置为环境变量 然后运行代码,输入url,视频下载到视频目录中

可以直接Youtube的网站,但是不能下载B站和抖音的视频

import yt_dlp



def download_video(url, output_path='./videos'):

    """

    下载网站视频

    参数:

        url (str): 视频网页URL

        output_path (str): 视频保存路径,默认为当前目录下的videos文件夹

    """

    ydl_opts = {

        'format': 'bestvideo+bestaudio/best',  # 选择最佳质量

        'outtmpl': f'{output_path}/%(title)s.%(ext)s',  # 输出文件名模板

        'merge_output_format': 'mp4',  # 合并为mp4格式

        'noplaylist': True,  # 如果URL是播放列表,只下载单个视频

        'quiet': False,  # 显示下载信息

        'progress_hooks': [download_progress_hook],  # 进度回调

    }

    try:

        with yt_dlp.YoutubeDL(ydl_opts) as ydl:

            ydl.download([url])

        print("下载完成!")

    except Exception as e:

        print(f"下载失败: {e}")



def download_progress_hook(d):

    """下载进度回调函数"""

    if d['status'] == 'downloading':

        print(f"\r下载中: {d['_percent_str']} - {d['_speed_str']} - 剩余时间: {d['_eta_str']}", end='')

    elif d['status'] == 'finished':

        print("\n视频下载完成,正在合并格式...")



# 使用示例

if __name__ == "__main__":

    video_url = input("请输入视频URL: ")

    download_video(video_url)