Jelajahi Sumber

mod: return

Ben 11 bulan lalu
induk
melakukan
39aa7cdf11
1 mengubah file dengan 8 tambahan dan 7 penghapusan
  1. 8 7
      app.py

+ 8 - 7
app.py

@@ -3,7 +3,7 @@ import logging
 import boto3
 import requests
 import yt_dlp
-from flask import Flask, request, Response
+from flask import Flask, request, Response, stream_with_context
 
 logging.basicConfig(format='%(asctime)s [%(levelname)s] %(filename)s:%(lineno)d %(message)s',
                     datefmt='%Y-%m-%d %H:%M:%S', level=logging.INFO)
@@ -37,12 +37,13 @@ def p():
                     url = item.get("url")
                     response = requests.get(url, stream=True)
                     logging.info(f"videoId: {video_id} status code: {response.status_code}")
-
-                    def generate():
-                        for chunk in response.iter_content(chunk_size=1024):
-                            yield chunk
-
-                    return Response(generate(), status=response.status_code, headers=dict(response.headers))
+                    response_iter = response.iter_content(chunk_size=4096)
+                    response_iter = stream_with_context(response_iter)
+                    forwarded_response = Response(
+                        response_iter,
+                        status=response.status_code,
+                        headers=dict(response.headers.items()))
+                    return forwarded_response
     return {"status": 0}