如何使用 Python 下载 Youtube 音乐和视频

举报
Q神 发表于 2023/06/23 11:28:07 2023/06/23
【摘要】 本文将讨论如何使用Python编程语言轻松地从Youtube下载音乐和视频。我们使用Python的原因是它是一种轻量级、快速且易于使用的软件开发工具。我们将使用两个库来实现我们的目标,argparse并且pytube可以使用 python 包安装程序 ( pip) 来安装它。导入库如何使用 Python 下载 Youtube 音乐和视频import argparsefrom pytube i...

本文将讨论如何使用Python编程语言轻松地从Youtube下载音乐和视频。我们使用Python的原因是它是一种轻量级、快速且易于使用的软件开发工具。

我们将使用两个库来实现我们的目标,argparse并且pytube可以使用 python 包安装程序 ( pip) 来安装它。

导入库

如何使用 Python 下载 Youtube 音乐和视频

import argparse
from pytube import YouTube

要解析提供给脚本的参数,我们将使用argparse,要下载 YouTube 视频,我们将使用pytube

接下来,我们必须提供存储视频和音频的文件夹。我通过使用以下常量来做到这一点:

VIDEO_DOWNLOAD_DIR = "../Downloads/videos"
AUDIO_DOWNLOAD_DIR = "..Downloads/audio"

下载功能

让我们编写一个函数,负责分别下载各自文件夹中的视频和音频。

对于音频,我们将过滤流中的纯音频内容,选择第一个可用的流,并将纯音频流下载到目录中AUDIO_DOWNLOAD_DIR

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

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

    print("audio was downloaded successfully")

对于视频,该函数获取 YouTube 视频的 URL 并下载目录可用的最佳/最高分辨率VIDEO_DOWNLOAD_DIR

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

    try:
        video.download(VIDEO_DOWNLOAD_DIR)
    except:
        print("Unable to download video at this time!")

    print("Video downloaded!")

这两个简单的函数获取 YouTube 视频和音频 URL,以尽可能最大的分辨率下载,然后将其保存在各自的目录中,但如果出现错误,则会打印出错误消息。

主功能

视频 URL 在主函数中使用 argparse 进行解析,并且还使用可选的仅音频标志。如果启用该标志,将下载视频的音频;默认情况下,视频和音频都会下载。

这两个简单的函数获取 YouTube 视频和音频 URL,以尽可能最大的分辨率下载,然后将其保存在各自的目录中,但如果出现错误,则会打印出错误消息。

让我们看一下代码。

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

    if args["audio"]:
        YoutubeAudioDownload(args["video"])
    else:
        YoutubeVideoDownload(args["video"])

我们完成了!

要测试代码是否确实有效,请在终端中键入以下内容。

# for audio
python main.py -a -v "[YouTube video URL]"

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

音频/视频目录应下载必要的媒体。

总结

在本文中,我们讨论了如何使用 pytube 库轻松从 Youtube 下载音频和视频。我们还使用 argparse 库向终端添加参数,以便我们可以使用速记方式下载媒体以及音频或视频的链接。我个人用它来下载我喜欢的歌曲,效果非常好。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。