使用Python将YouTube视频下载到某个目录

2024-06-25 22:58:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过用下面的代码在YouTube上下载一个视频,它正在工作,但我想把视频保存在一个特定的位置。现在它正在C:/Users/Download中保存视频。如果要将视频保存在桌面上,需要对代码进行哪些更改?

from __future__ import unicode_literals
import youtube_dl
import urllib
import shutil
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=n06H7OcPd-g'])

Tags: 代码fromimport视频youtubedownloadunicodefuture
3条回答

我发现了一个非常酷的python模块,它允许您轻松地从youtube下载视频。要安装它:

pip install pytube

现在,你可以这样下载你的视频-

from pytube import YouTube
yt = YouTube("https://www.youtube.com/watch?v=n06H7OcPd-g")
yt = yt.get('mp4', '720p')
yt.download('/path/to/download/directory')

现在你可以很容易地用Python抓取这些视频了;现在,我们喝!

更新1:

感谢@Chiramisu的评论,您可以使用以下一行程序下载最高质量的视频:

YouTube('video_url').streams.first().download('save_path')

对于Windows,请使用双反斜杠指定路径,例如:

YouTube('video_url').streams.first().download('C:\\Users\\username\\save_path')

更新2:

如果pytube似乎不适合您,请尝试使用youtube dl:

sudo -H pip install --upgrade youtube-dl

现在下载视频:

from __future__ import unicode_literals
import youtube_dl

ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=BaW_jenozKc'])

关于python中ytdl的更多信息here

在python 3.x中从youtube下载视频 对于参考,您可以检查https://python-pytube.readthedocs.io/en/latest/user/quickstart.html#downloading-a-video

from pytube import YouTube
import os

def downloadYouTube(videourl, path):

    yt = YouTube(videourl)
    yt = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
    if not os.path.exists(path):
        os.makedirs(path)
    yt.download(path)

downloadYouTube('https://www.youtube.com/watch?v=zNyYDHCg06c', './videos/FindingNemo1')

你应该把它放在ydl_opts里面:

ydl_opts = {
    'outtmpl': os.path.join(download_path, '%(title)s-%(id)s.%(ext)s'),
}

在你的例子中,download_path应该是'C:/Users/Desktop'。如果您喜欢不带视频ID的文件名,请使用%(title)s.%(ext)s,而不是%(title)s-%(id)s.%(ext)s

或者在开始下载之前,只需os.chdir(path)将目录更改为您希望下载的位置。

from __future__ import unicode_literals
import youtube_dl
import os

ydl_opts = {}
os.chdir('C:/Users/Desktop')
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=n06H7OcPd-g'])

相关问题 更多 >