У меня есть простой фляжный сервер. Я загрузил, используя pafy, видео из ссылки YouTube, предоставленной пользователем.Загрузите загруженное видео с флягой
@app.route('/')
def download():
return render_template('basic.html')
Шаблон Basic.html имеет форму, которая представляет действие для загрузки:
<form action="download_vid" method="post">
Link: <input type="text" name="download_path"><br>
<input type="submit" value="Submit">
</form>
У меня есть другая конечная точка,/download_vid который выглядит следующим образом.
@app.route('/download_vid', methods=['POST'])
def download_vid():
url = request.form['download_path']
v = pafy.new(url)
s = v.allstreams[len(v.allstreams)-1]
filename = s.download("static/test.mp4")
return redirect(url_for('done'))
Желаемая ссылка действительно загружается как .mp4-файл в мою статическую папку. Я могу посмотреть его, и я также могу использовать его в качестве источника для тега в HTML-файле, если я его открываю локально.
@app.route('/done')
def done():
return app.send_static_file('test.mp4')
Из того, что я понимаю, 'send_static_file' служит для файлов из статического каталога. Тем не менее, я получаю ошибку 404, когда я запускаю сервер, хотя видео явно там.
Я также попробовал другую версию для Done():
@app.route('/done')
def done():
return return render_template('vid.html')
Здесь vid.html находится в шаблонах и имеет жесткий кодированный путь к статическому/test.mp4. Он загружается после завершения загрузки. В этом случае у меня нет ошибки 404, но тег ничего не делает, он просто серый. Если я открываю vid.html локально (дважды щелкните по нему), он работает, он показывает видео.
Не могли бы вы помочь мне понять, что происходит?
То, что я хочу, чтобы достичь это:
- Берут вход от пользователя [Done]
- Используйте этот вход для загрузки видео [Done]
- Подавать это видео обратно пользователю [??? ]
Hello. Спасибо за ответ. Да, видео загружается в статический. Да, static находится в том же каталоге, что и my main.py (я называю его route.py). Да, у него есть разрешение. Поскольку он может писать там, я предполагаю, что он также может читать. Конечно, я запускаю сервер с sudo. Тем не менее, никакого результата. Я также попробовал: app.send_static_file (url_for ('static', filename = '' test.mp4 '')) – RandomGuyqwert
Я пробовал, что вы предложили, и я получаю эту ошибку: Не найдено Запрашиваемый URL-адрес не найден на сервере. Если вы указали URL вручную, проверьте правильность написания и повторите попытку. Файл явно там. И это работает. – RandomGuyqwert