我查看了Python的API概述:开发人员指南:Python
但是没有任何关于如何下载视频的参考。如何使用 API 下载视频?
下载 Youtube 视频违反了他们的服务条款,因此他们的 API 不支持这一点。
上面链接的页面指的是 Youtube ToS,其中指出:
除非您看到 YouTube 在服务上显示该内容的“下载”或类似链接,否则您不得下载任何内容。
查看 YouTube 的 Python API,它可以下载视频,也可以直接获取视频的 URL: https://pythonhosted.org/Pafy/
显然没有 api 端选项,但您可以简单地使用 youtube-dl 并通过 python 脚本内的子进程调用它,这比在独立的 youtube-下载器上使用更容易/稳定。
我知道这篇文章已经很旧了,但我想会给感兴趣的人介绍最近的进展。 从 2018 年起,pytube 可用,这是用 Python 编写的轻量级库。它没有第三方依赖项,旨在高度可靠。
来自 github 页面
pytube 是一个非常严肃、轻量级、无依赖的 Python 库(和命令行实用程序),用于下载 YouTube 视频。
从 YouTube 下载非常简单。
from pytube import YouTube
YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()
yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
yt.streams
.filter(progressive=True, file_extension='mp4')
.order_by('resolution')
.desc()
.first()
.download()
如果这对某人有帮助,我可以使用以下代码成功下载 youTube 视频。 注意:我正在使用colab
# install python dependencies
!pip install -q youtube-dl
from IPython.display import YouTubeVideo
YOUTUBE_ID = 'M6KD0pDrBkk'
YouTubeVideo(YOUTUBE_ID)
# download the youtube with the given ID
!youtube-dl -f 'bestvideo[ext=mp4]' --output "youtube.%(ext)s" https://www.youtube.com/watch?v=$YOUTUBE_ID
# cut the seconds between 15 and 20
!ffmpeg -y -loglevel info -i youtube.mp4 -ss 00:00:01.0 -t 5 video.mp4
您还可以使用 yt_dlp 从我知道的 pytube 不再工作的地方下载 YouTube 视频,这是代码:
#pip install yt_dlp # to install dependencies
import yt_dlp
SAVE_PATH = "/sui" # Update the path where you want to save the video
link = "https://youtu.be/1-xGerv5FOk?si=NZmZQ9KnXPPgeBIY"
ydl_opts = {
'format': 'best',
'outtmpl': f'{SAVE_PATH}/%(title)s.%(ext)s',
}
try:
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([link])
print('Video downloaded successfully!')
except Exception as e:
print(f"Some Error! {e}")