发布于 2026-01-06 0 阅读
0

通过 Python DEV 的全球展示挑战赛下载 YouTube 视频,该挑战赛由 Mux 呈现:展示你的项目!

使用 Python 下载 YouTube 视频

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

介绍

你好!🙂 在本教程中,我将向你展示如何使用Python下载YouTube视频。


安装依赖项

首先,我们需要安装所需的依赖项,我们将使用一个名为“pytube”的库。创建一个名为“requirements.txt”的文件,并添加以下内容:

pytube
Enter fullscreen mode Exit fullscreen mode

接下来,要安装依赖项,您需要运行以下命令:

pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

现在我们终于可以开始编写代码了。😎


编写代码

接下来创建一个名为“main.py”的文件,首先我们需要声明导入语句:

import argparse
from pytube import YouTube
Enter fullscreen mode Exit fullscreen mode

我们将使用 argparse 解析传递给脚本的参数,并使用 pytube 下载 YouTube 视频。

接下来,我们需要声明视频/音频文件要保存到哪些目录,我使用以下常量:

VIDEO_SAVE_DIRECTORY = "./videos"
AUDIO_SAVE_DIRECTORY = "./audio"
Enter fullscreen mode Exit fullscreen mode

视频和音频将分别保存到不同的目录中。接下来,我们需要创建一个能够同时处理视频和音频的函数:

def download(video_url):
    video = YouTube(video_url)
    video = video.streams.get_highest_resolution()

    try:
        video.download(VIDEO_SAVE_DIRECTORY)
    except:
        print("Failed to download video")

    print("video was downloaded successfully")
Enter fullscreen mode Exit fullscreen mode

这个函数并不复杂,它接收 YouTube 视频的 URL,获取可用的最高分辨率视频,然后将其下载到视频目录中。

但是,如果你像我一样,主要用 YouTube 听音乐,你可能不需要视频,只想下载音频,那么我们来创建另一个功能,允许我们只下载音频:

def download_audio(video_url):
    video = YouTube(video_url)
    audio = video.streams.filter(only_audio = True).first()

    try:
        audio.download(AUDIO_SAVE_DIRECTORY)
    except:
        print("Failed to download audio")

    print("audio was downloaded successfully")
Enter fullscreen mode Exit fullscreen mode

与视频功能类似,但这次我们筛选出只有音频的流,并获取第一个可用的流,然后将只有音频的流下载到音频目录。

最后,我们需要编写主函数:

if __name__ == "__main__":
    ap = argparse.ArgumentParser()
    ap.add_argument("-v", "--video", required = True, help = "URL to youtube video")
    ap.add_argument("-a", "--audio", required = False, help = "audio only", action = argparse.BooleanOptionalAction)
    args = vars(ap.parse_args())

    if args["audio"]:
        download_audio(args["video"])
    else:
        download(args["video"])
Enter fullscreen mode Exit fullscreen mode

这里我们使用 argparse 来解析视频 URL,还使用了一个可选的仅音频标志。如果启用该标志,则会下载视频的音频;默认情况下,视频和音频都会下载。

完成!😆
现在你应该可以通过以下命令运行脚本了:

# video
python main.py -v "[YouTube Video URL]"

# audio
python main.py -a -v "[YouTube Video URL]"
Enter fullscreen mode Exit fullscreen mode

媒体文件应位于音频/视频目录中。


结论

这里我演示了如何使用名为 pytube 的库下载 YouTube 视频。
我个人用它来下载我喜欢的歌曲。😃

您可以在这里找到本教程的源代码:
https://github.com/ethand91/python-youtube


喜欢我的作品吗?我会发布各种主题的内容,如果你想看更多,请点赞并关注我。
另外,我超爱咖啡。

“请我喝杯咖啡”

文章来源:https://dev.to/ehand91/download-youtube-videos-with-python-4kp4