Загрузка файла из пользовательского API в python

Упомянутый ниже код представляет собой настраиваемый API, использующий python, в основном, что он делает, так это получает ссылку от пользователя и анализирует ее с помощью функции и загружает конкретное видео с YouTube, синтаксический анализ работает, но мне нужно получить загрузку, которая исходит от это я новичок в restful API, пожалуйста, просмотрите код:

from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
from flask_jsonpify import jsonify
from pytube import YouTube

app = Flask(__name__)
api = Api(app)

     def youtube_api(self,link):
         yt = YouTube('https://thewikihow.com/video_'+link)
         stream = yt.streams.filter(res='720p')
         stream.first().download()  

class Test(Resource):
    def get(self,link):
        api_link = str(link)
        youtube_api(link)
        return jsonify(api_link)

api.add_resource(Test,'/api/<link>')        


if __name__ == '__main__':
     app.run(port='5002')

Класс Test принимает ссылку методом GET и передает ссылку функции youtube_api, код stream.first().download() скачивает файл и сохраняет его. Функция youtube_api была отдельным скриптом, поэтому я пытаюсь интегрировать ее с моим пользовательским API, API будет использоваться в мобильных приложениях, поэтому как вернуть обратно Json

При запуске сервера ошибок нет: Загрузка файла из пользовательского API в python

Что не работает? Включите полный текст любых ошибок, которые вы получаете. Вы хотите вернуть результат этого скрипта в ответ JSON? Что в вашем скрипте этого не делает?

chickity china chinese chicken 30.01.2019 08:08

Я не получаю никакой ошибки, ссылка передается на youtube_api, но загрузка не происходит в фоновом режиме, см. функцию youtube_api

Amrudesh Balakrishnan 30.01.2019 08:17

Глядя на API (github.com/nficano/pytube/blob/…), возможно, вызов должен быть в два шага для stream. В функции def youtube_api(self,link): вы пробовали stream = yt.streams.filter(res='720p').first();, затем stream.download()

chickity china chinese chicken 30.01.2019 08:24

Да, оба одинаковы, но это работает на сервере, как его можно загрузить, а pytube работает как отдельный скрипт в API, который вы указали.

Amrudesh Balakrishnan 30.01.2019 08:28

Я исправил, вы были правы, файл загружался в фоновом режиме и хранился в том месте, где выполнялся скрипт, но как я могу перенаправить загрузку в браузер или в приложение, которое его запрашивает?

Amrudesh Balakrishnan 30.01.2019 11:41

Это зависит от серверной инфраструктуры, которую вы используете для размещения своего контента.

chickity china chinese chicken 30.01.2019 22:51
0
6
456
0

Другие вопросы по теме

Похожие вопросы