Итак, я строил загрузчик видео на django с pytube и heroku для хоста, но загрузчик ничего не загружает, когда я использую его на heroku.
#tools/views.py
from django.shortcuts import render
from pytube import YouTube
import os.path
from django.contrib import messages
def index(request):
return render(request,'tools/templates/index.html')
def download(request):
try:
homedir = os.path.expanduser("~")
dirs = homedir + '/Downloads'
if request.method == "POST":
url = request.POST['kualitas']
yt = YouTube(request.POST.get('link'))
if url == "rendah":
try:
a = yt.streams.filter(progressive=True).get_lowest_resolution()
a.download(dirs)
messages.success(request, 'Video berhasil diunduh! (Kualitas Rendah)')
except:
messages.error(request,'Maaf, video dengan resolusi itu tidak ditemukan')
else:
try:
a=yt.streams.filter(progressive=True).get_highest_resolution()
a.download(dirs)
messages.success(request, 'Video berhasil diunduh!')
except:
messages.error(request,'Maaf Video gagal diunduh')
except:
messages.error(request, "Masukkan link dengan benar")
return render(request, 'tools/templates/download.html')
#tools/templates/download.html
{% extends 'base.html' %}{% block content %}{% load static %}
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.btn-aqua {
background: #0297FF;
color: #fff;
}
.btn-aqua:hover {
background: #10629b;
color: #fff;
}
body{
background: url("{% static 'bg4.jpeg' %}") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.gambar {
float: right;
width: 29.5%;
}
</style>
</head>
<body>
<img class="gambar" src="{% static 'fiona.png' %}" alt="fiona">
<div class="container">
<div class="col-md-8 card mb-5 mt-7 left top">
<div class="card-body">
<h2 style="text-align: center">Pengunduh Video Youtube Fiona</h2>
{% if messages %}
{% for message in messages %}
{% if message.tags == 'success' %}
<div class="alert alert-success">{{ message }}</div>
{% else %}
<div class="alert alert-danger">{{ message }}</div>
{% endif %}
{% endfor %}
{% endif %}
<form method="POST" class="post-form">{% csrf_token %}
<div class="form-group">
<label for="link">Masukkan Link Video Youtube</label>
<input id="link" type="url" class="form-control" required="required" name="link">
<label for="kualitas">Pilih Kualitas:</label>
<select id="kualitas" class="custom-select mr-sm-2" name="kualitas">
<option value="rendah">Rendah (240p-360p)</option>
<option value="tinggi">Tinggi (360p-1080p)</option>
</select>
</div>
<button type="submit" class="btn btn-default">Unduh!</button>
</form>
</div>
</div>
</div>
</body>
{% endblock %}
Когда я использую localhost, видео скачивается нормально. Но когда я использую загрузчик на heroku, он ничего не загружает, хотя messages.success
всплыло. Как это исправить, и если можно, я хочу подключить это к диспетчеру загрузки браузера, чтобы при нажатии кнопки «Загрузить» он отображал загружаемый файл в диспетчере загрузки браузера и на android показывался на панели уведомлений.