mhdzumair commited on
Commit
8013acb
1 Parent(s): 6ea5eed

Fix streaming header & status issue

Browse files
mediaflow_proxy/const.py CHANGED
@@ -9,12 +9,6 @@ SUPPORTED_RESPONSE_HEADERS = [
9
  "etag",
10
  "server",
11
  "date",
12
- "cache-control",
13
- "expires",
14
- "pragma",
15
- "content-disposition",
16
- "range",
17
- "content-encoding",
18
  ]
19
 
20
  SUPPORTED_REQUEST_HEADERS = [
 
9
  "etag",
10
  "server",
11
  "date",
 
 
 
 
 
 
12
  ]
13
 
14
  SUPPORTED_REQUEST_HEADERS = [
mediaflow_proxy/handlers.py CHANGED
@@ -47,17 +47,15 @@ async def handle_hls_stream_proxy(request: Request, destination: str, headers: d
47
  if "mpegurl" in response.headers.get("content-type", "").lower():
48
  return await fetch_and_process_m3u8(streamer, destination, headers, request, key_url)
49
 
50
- headers.update({"accept-ranges": headers.get("range", "bytes=0-")})
51
  # clean up the headers to only include the necessary headers and remove acl headers
52
  response_headers = {
53
  k.title(): v for k, v in response.headers.items() if k.lower() in SUPPORTED_RESPONSE_HEADERS
54
  }
55
- # set chunked transfer encoding for streaming
56
- response_headers["Transfer-Encoding"] = "chunked"
57
 
58
  return StreamingResponse(
59
  streamer.stream_content(destination, headers),
60
- status_code=response.status_code,
61
  headers=response_headers,
62
  background=BackgroundTask(streamer.close),
63
  )
@@ -120,8 +118,6 @@ async def handle_stream_request(method: str, video_url: str, headers: dict):
120
  await streamer.close()
121
  return Response(headers=response_headers, status_code=response.status_code)
122
  else:
123
- # set chunked transfer encoding for streaming
124
- response_headers["Transfer-Encoding"] = "chunked"
125
  return StreamingResponse(
126
  streamer.stream_content(video_url, headers),
127
  headers=response_headers,
 
47
  if "mpegurl" in response.headers.get("content-type", "").lower():
48
  return await fetch_and_process_m3u8(streamer, destination, headers, request, key_url)
49
 
50
+ headers.update({"range": headers.get("range", "bytes=0-")})
51
  # clean up the headers to only include the necessary headers and remove acl headers
52
  response_headers = {
53
  k.title(): v for k, v in response.headers.items() if k.lower() in SUPPORTED_RESPONSE_HEADERS
54
  }
 
 
55
 
56
  return StreamingResponse(
57
  streamer.stream_content(destination, headers),
58
+ status_code=206,
59
  headers=response_headers,
60
  background=BackgroundTask(streamer.close),
61
  )
 
118
  await streamer.close()
119
  return Response(headers=response_headers, status_code=response.status_code)
120
  else:
 
 
121
  return StreamingResponse(
122
  streamer.stream_content(video_url, headers),
123
  headers=response_headers,