【发布时间】:2021-01-21 07:19:27
【问题描述】:
基本上我会在移动应用程序中提供一个输入字段,用户将在其中粘贴 YouTube 网址并将网址发送到后端 Rest API,Rest API 将下载视频。问题是视频应该被下载到这个位置/storage/emulated/0/下载移动存储
错误,视频正在后端下载。即在我的本地机器上而不是移动存储位置上
用于下载视频的 API 代码
from flask import Flask, request, jsonify
from pytube import YouTube
import os
app = Flask(__name__)
@app.route('/Youtube', methods=["POST"])
def youtube():
youtube_link_request = request.get_json(force=False, silent=False, cache=True)
print(youtube_link_request)
youtube_link = youtube_link_request['link']
downloads = youtube_link_request['path']
print(downloads);
yt = YouTube(youtube_link).streams.first().download()
## YouTube(youtube_link).streams.first().download() will starting downloading the video
views = YouTube(youtube_link).views
thumbnail = YouTube(youtube_link).thumbnail_url
title = YouTube(youtube_link).title
# streams_data = yt.streams.first().download()
# streams = []
# for stream in streams_data:
# stream_info = stream
# streams.append(stream_info.type)
return jsonify({"Data": "successful completed",
"views": views,
"thumbnail": thumbnail,
"title": title,
}), 200
if __name__ == "__main__":
app.run(debug=True)
除了颤振代码
RaisedButton(
onPressed: () async {
final PermissionHandler _permissionHandler =
PermissionHandler();
var result = await _permissionHandler
.requestPermissions([PermissionGroup.storage]);
// var dir = await
if (_formkey.currentState.validate()) {
if (result[PermissionGroup.storage] ==
PermissionStatus.granted) {
var dirpath =
await ExtStorage.getExternalStoragePublicDirectory(
ExtStorage.DIRECTORY_DOWNLOADS);
final UrlModel = await passInfo(urlTextController.text);
// _loading ? LinearProgressIndicator() : _urlModel;
setState(() {
_loading = !_loading;
_urlModel = UrlModel;
views = _urlModel.views;
title = _urlModel.title;
thumbnail = _urlModel.thumbnail;
});
print(dirpath);
}
// print(title);
Fluttertoast.showToast(
msg: "${_urlModel.title}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1);
} else {
Fluttertoast.showToast(
msg: "Error",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1);
}
},
child: Text('Submit'),
),
【问题讨论】:
-
你得到什么错误信息?
-
错误是视频正在后端下载。即在我的本地机器上而不是移动存储位置上
-
你可以查看这个答案:stackoverflow.com/a/66390687/6875197
标签: python-3.x flutter flask