使用 Django 的 Youtube 视频下载器
在本文中,我们将看到如何在 Django 中制作 YouTube 视频下载工具。我们将为此使用pytube模块。
先决条件:
- pytube:它 是python的轻量级无依赖模块,用于下载YouTube视频。
- Django :它是 Python 的框架,用于制作 Web 应用程序。
在这里,我们将使用 Django 作为后端以及 pytube 模块来创建这个工具。我们可以通过在终端中输入以下命令来安装 pytube 模块。
pip install pytube
所以,让我们深入制作我们的 YouTube 视频下载工具。
首先,我们将创建一个 HTML 设计(表单),用户可以在其中输入他/她想要下载的视频的 URL。我们将使用 Django 的POST方法来获取该 URL(因为它是安全的)。如果我们使用 POST 方法,我们还需要使用 csrf 令牌。 csrf 令牌的语法是:
{% csrf_token %}
HTML
Youtube video downloader
Python3
# importing all the required modules
from django.shortcuts import render, redirect
from pytube import *
# defining function
def youtube(request):
# checking whether request.method is post or not
if request.method == 'POST':
# getting link from frontend
link = request.POST['link']
video = YouTube(link)
# setting video resolution
stream = video.streams.get_lowest_resolution()
# downloads video
stream.download()
# returning HTML page
return render(request, 'youtube.html')
return render(request, 'youtube.html')
Python3
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('youtube', views.youtube, name='youtube'),
]
现在,是时候创建一个接收视频链接并下载该视频的函数了。您需要从 views.py 文件中的模块 pytube 导入函数YouTube。 现在我们可以定义下载视频的函数了。
视图.py
蟒蛇3
# importing all the required modules
from django.shortcuts import render, redirect
from pytube import *
# defining function
def youtube(request):
# checking whether request.method is post or not
if request.method == 'POST':
# getting link from frontend
link = request.POST['link']
video = YouTube(link)
# setting video resolution
stream = video.streams.get_lowest_resolution()
# downloads video
stream.download()
# returning HTML page
return render(request, 'youtube.html')
return render(request, 'youtube.html')
现在,我们必须在 urls.py 中为该函数定义 URL(路径)。
蟒蛇3
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('youtube', views.youtube, name='youtube'),
]
这就是编码部分,现在您可以通过Python manage.py runserver运行该项目并前往http://localhost:8000/youtube查看输出。
输出:
当您点击提交时,视频将下载到您的 Django 项目目录中。