Скачать видео на устройстве пользователя Python Django - PullRequest
0 голосов
/ 12 апреля 2020

Я создаю Django приложение , где пользователи могут вставлять ссылки и скачивать видео, но есть проблема. Я пытался запустить его на своем локальном сервере, а затем в глобальной сети, но оба раза результаты одинаковы. Видео загружается в мой каталог, а не пользователей. Для этого я использую youtube-dl . Я буду очень благодарен, если кто-нибудь поможет мне с этим. Я добавлю файл views.py , чтобы вы лучше поняли. Спасибо!

from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
from download.models import urlinput
from download.forms import Input
import youtube_dl
import subprocess
import os
# Create your views here.
def index(request):
form=Input()
    if request.method=='POST':
        form=Input(request.POST)
        if form.is_valid():
            link=form['url'].value()
            #downloadaudio(link)
            #video1080(link)
            #homedir = os.path.expanduser("~")
            #dirs=homedir +'/Downloads'
            video720(link)
            #download4k(link)
            form.save(commit=True)
            return render(request,'index.html',{'form':form})
       else:
           print("Invalid Input")
return render(request,'index.html',{'form':form})
def downloadaudio(link):
options={'format':'bestaudio/best','extractaudio':True,'audioformat':'mp3'}
with youtube_dl.YoutubeDL(options) as ydl:
    ydl.download([link])
def video1080(link):
options={'format':'bestvideo+bestaudio/best'}
with youtube_dl.YoutubeDL(options) as ydl:
    ydl.download([link])
def video720(link):
options={'format':'best'}
with youtube_dl.YoutubeDL(options) as ydl:
    ydl.download([link])
def download4k(link):
subprocess.call("youtube-dl -f 299+140 {}".format(link))

1 Ответ

0 голосов
/ 12 апреля 2020

Изменить это

homedir = os.path.expanduser("~")

На это

homedir = os.path.expanduser("~user")

Так, чтобы оно ссылалось на каталог пользователя.

Вы можете прочитать на os.path.expanduser здесь из документов.

...