Доброго времени суток всем .у меня реализован на сайте не большой конвертер который берет ссылку с ютуба конвертирует ее в мр3 и отправляет на почту ссылку для скачивание конвертироного файла. фаил после конвертации попадает в папку media. и вот у меня вопрос как сделать чтоб после перехода по ссылке фаил скачивался пользывателю на комп?
views.py
import youtube_dl
import os
from django.shortcuts import render, redirect
from django.contrib import messages
from converter.models import Converter
from converter.forms import ConvertForm
from django.core.mail import send_mail
from django.conf import settings
# from django.http import FileResponse
# Create your views here.
DOWNLOAD_OPTIONS_MP3 = {
'format': 'bestaudio/best',
'outtmpl': 'media/%(title)s.%(ext)s',
'nocheckcertificate': True,
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
def get_mp3(link, email, url):
with youtube_dl.YoutubeDL(DOWNLOAD_OPTIONS_MP3) as dl:
result = dl.extract_info(link)
filename = result['title']
download_link = 'http://' + url + '/media/' + filename.replace(' ', '_') + '.mp3'
send_mail('Ссылка на скачивание файла', download_link, settings.EMAIL_HOST_USER, [email], fail_silently=False, )
def get_link(request):
if request.method == 'POST':
form = ConvertForm(request.POST)
if form.is_valid():
link = form.cleaned_data.get('link')
email = form.cleaned_data.get('email')
query = Converter.objects.create(link=link, email=email)
url = request.get_host()
messages.success(request, 'Ссылка на скачивание отправлена на почту!')
get_mp3(link, email, url)
# return redirect('/')
else:
form = ConvertForm()
return render(request, 'index.html', locals())